Я пытаюсь получить счет кредита по типу книги.Как создать «группу по» на имущество ребенка и избежать «NotSupportedException»
У меня есть эти 3 класса (упрощенные). часть кода первой модели:
public class Loan
{
public int LoanId {get;set;}
.....
public int BookId {get;set;}
Public virtual Book {get;set;}
}
//Book parent class
public class Book {
public int BookId {get;set;}
...
}
//a Book child class with a specific 'Type' property
public SmallBook : Book
{
public string Type {get;set;}
...
}
До тех пор, я попробовал этот вид запроса ....
var StatsMono = (from p in context.Loans
//the 'where' clause allow to obtain all the loans where Loans.Book is a SmallBook.
where context.Books.OfType<SmallBook>().Any(exm => exm.BookId == p.BookId)
//here is my problem : i can't access 'SmallBook.Type' w/o cast
group p by ((SmallBook)p.Book).Type into g
select { GroupingElement=g.Key,intValue=g.Count()}
).ToList();
... но я не могу избавиться от, за исключением следующего:
Невозможно бросить тип 'Ips.Models.Book' к типу ' Ips.Models.SmallBook'. LINQ to Entities поддерживает только листинг EDM примитивных или перечисляемых типов.
Я понимаю, почему я получаю эту ошибку, но теперь мне интересно, есть ли способ достичь того, что я хочу, только с одним запросом?
@AlperTungaArslan, которым я управляю Non-polymorphic Querie, чтобы получить объекты SmallBooks. Во всяком случае, это ничего не изменит, потому что exm - это объект SmallBook в обоих случаях. –