Указанный тип члена не поддерживается linq - PullRequest
0 голосов
/ 20 февраля 2012

Может кто-нибудь сказать мне, что это за ошибка?

Указанный элемент типа 'OrderDetails' не поддерживается в LINQ to Entities. Поддерживаются только инициализаторы, элементы сущностей и свойства навигации сущностей. Что не так в этом коде?

return storeDB.Albums.OrderByDescending(a=>a.OrderDetails.Count()).Take(count).ToList()‌​

1 Ответ

0 голосов
/ 22 февраля 2012

Поскольку вы используете код EF, сначала попробуйте добавить класс конфигурации, чтобы отобразить отношение один ко многим между Album и OrderDetails. Ниже приведен пример конфигурации для альбома.

public class AlbumConfiguration : EntityTypeConfiguration<Album>
    {
        public AlbumConfiguration()
        {
            HasKey(a => a.Id);
            HasMany(album => album.Orders).WithOptional(order => order.Album).
               HasForeignKey(order => order.AlbumId);
        }
    }

и ваши OrderDetails должны быть изменены следующим образом

OrderDetail 
{ 
  public int OrderDetailId { get; set; } 
  public int OrderId { get; set; } 
  public int AlbumId { get; set; } 
  public int Quantity { get; set; } 
  public decimal UnitPrice { get; set; } 
  public virtual Album Album { get; set; } 
  public virtual Order Order { get; set; }
}

и ваш класс Album должен иметь виртуальный список OrderDetails.

и, наконец, в вашем классе DbContext добавьте конфигурацию, переопределив метод OnModelCreating. типовой класс будет

public class YourContext : DbContext
    {

       // your DBSets and contructors, etc


        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Configurations.Add(new AlbumConfiguration());            
            base.OnModelCreating(modelBuilder);
        }


    }

Попробуйте, это может быть причиной вашего исключения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...