谁能告诉我这是什么错误?
LINQ to Entities不支持指定的类型成员'OrderDetails'。仅支持初始值设定项,实体成员和实体导航属性。 这段代码中有什么问题?
return storeDB.Albums.OrderByDescending(a=>a.OrderDetails.Count()).Take(count).ToList()
答案 0 :(得分:0)
由于您正在使用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);
}
}
试试这可能是你的异常原因