Gustav Brock
Gustav at cactus.dk
Fri Mar 6 10:53:28 CST 2009
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>);
}
}
***