Spędziłem ostatnie 2 dni zastanawiając się, dlaczego to nie działa, ale w przypadku moich innych stołów działa doskonale. Przetestowałem nawet mój drugi model, który zawiera wiele pól. Zrób to, nawet jeśli TYLKO 2 pola nie działają. Wiem, że może mi brakować oczywistej roli, proszę o pomoc.Podany element typu nie jest obsługiwany w LINQ do jednostek. Obsługiwane są tylko inicjalizatory, elementy encji i właściwości nawigacji jednostki.
Oto mój model
public class ReceivedItem
{
public int ReceivedItemID { get; set; }
public int ItemID { get; set; }
}
ViewModel
public class ReceivedItemViewModel
{
public int ReceivedItemID { get; set; }
public int ItemID { get; set; }
}
Controller
[GridAction]
public ActionResult GetReceivedItems()
{
return View(new GridModel(GetReceivedItemsViewModels()));
}
private IQueryable<ReceivedItemViewModel> GetReceivedItemsViewModels()
{
return db.ReceivedItems
.Select(
c => new ReceivedItemViewModel
{
ItemID = c.ItemID
});
}
Zobacz
@(Html.Telerik().Grid<ReceivedItem>()
.Name("grdItems")
.DataBinding(binding => binding.Ajax()
.Select("GetReceivedItems", "Receiving"))
.DataKeys(keys => keys.Add(o => o.ItemID))
.Columns(cols =>
{
cols.Bound(c => c.ItemID);
})
.Pageable()
.Sortable()
.Groupable()
.Filterable()
)
Błąd Dostałem za pomocą Firebug:
The specified type member 'ReceivedItemID' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.
To pomoże dowiedzieć się, gdzie występuje wyjątek. Ten wyjątek zwykle oznacza, że używasz encji, w której oczekiwana jest wartość pierwotna, na przykład 'Where (a => a.Parent == parentObject)'. (Powinno to być 'Where (a => a.ParentId == parentId)'). –