Gustav Brock
Gustav at cactus.dk
Sat Mar 7 08:41:25 CST 2009
Hi all
Also, the fill method is now vastly reduced.
protected void OwnerDropDownList_Init(object sender, EventArgs e)
{
LocationDropDownList.DataValueField = "Id";
LocationDropDownList.DataTextField = "Location1";
}
private void FillLocationDropDownList()
{
LocationDropDownList.DataSource = _erhvervslejeContext.LocationByOwnerQuery;
LocationDropDownList.DataBind();
}
/gustav
>>> Gustav at cactus.dk 07-03-2009 15:27 >>>
Hi all
I finally found out how to return Location rather than anonymous types:
public ObjectQuery<Location> LocationByOwnerQuery
{
get
{
ObjectQuery <Location> locationByOwner;
if (_locationFilterOwner != null)
{
locationByOwner =
Location
.Where("it.Owner.Id = @ownerId",
new ObjectParameter ("ownerId", _locationFilterOwner.Id));
}
else
{
locationByOwner =
Location;
}
return locationByOwner;
}
}
Now, how could I use the object Owner as parameter and not Owner.Id?
This is not accepted:
.Where("it.Owner = @owner", new ObjectParameter ("owner", _locationFilterOwner));
as only scalar values are accepted as parameter values.
/gustav
>>> Gustav at cactus.dk 06-03-2009 17:53 >>>
Hi all, sorry being serious on a Friday, but this is really bugging me ...
I wish to retrieve a list of locations for the DataSource of a DropDownList.
The entity model does have a collection of Location which I can retrieve and cast to a list like this:
> In .. .aspx.cs file:
private void FillLocationDropDownList()
{
var locationQuery = (from l in _erhvervslejeContext.Location
select new
{
Id = l.Id,
Location1 = l.Location1
}).ToList();
LocationDropDownList.DataSource = locationQuery;
LocationDropDownList.DataBind();
}
However, I have added an ObjectQuery to the entity model, which filters Location, LocationByOwnerQuery (shown below):
private void FillLocationDropDownList()
{
var locationQuery = (from l in _erhvervslejeContext.Location
select new
{
Id = l.Id,
Location1 = l.Location1
}).ToList();
LocationDropDownList.DataSource = locationQuery;
LocationDropDownList.DataBind();
}
Now, if I try to retrieve this as a list as shown, an error is raised at the var line:
" .. Cannot create a constant value of the type 'erhvervslejeModel.erhvervslejeEntities'.
Only primitive types ('like Int32, String og Guid') are supported in this context. .."
I know I could just do a foreach loop to add the items into the listbox but that is just a bit too primitive.
Any suggestions?
/gustav
> in public partial class erhvervslejeEntities : global::System.Data.Objects.ObjectContext
public ObjectQuery<Location> LocationByOwnerQuery
{
get
{
IQueryable query;
if (_locationFilterOwner != null)
{
query =
from
Location location in this.Location
where
location.Owner.Equals(_locationFilterOwner)
select
location;
}
else
{
query =
from
Location location in this.Location
select
location;
}
return (query as ObjectQuery<Location>);
}
}
***