【问题标题】:Specified member type is not supported linqlinq 不支持指定的成员类型
【发布时间】:2012-03-14 17:00:13
【问题描述】:

谁能告诉我这是什么错误?

LINQ to Entities 不支持指定的类型成员“OrderDetails”。仅支持初始化程序、实体成员和实体导航属性。 这段代码有什么问题?

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

【问题讨论】:

  • 你能把控制器中的代码和Action返回的视图贴出来吗?
  • 事实上我已经通过删除我的 CartSummary.cshtml 文件中的同一行代码来解决这个问题,谢谢。
  • 先生,我现在收到此错误“LINQ to Entities 不支持指定的类型成员 'OrderDetails'。仅支持初始化程序、实体成员和实体导航属性。”这里有什么问题? return storeDB.Albums.OrderByDescending(a=>a.OrderDetails.Count()).Take(count).ToList();
  • 这是我的 OrderDetail 类 class OrderDetail { public int OrderDetailId { get;放; } 公共 int OrderId { 获取;放; } 公共 int AlbumId { 获取;放; } 公共 int 数量 { 获取;放; } 公共十进制单价 { 得到;放; } 公共虚拟专辑专辑 { 获取;放; } 公共虚拟订单订单 { 获取;放; } }
  • 订单详情在我调试时为空。

标签: asp.net-mvc-3


【解决方案1】:

由于您使用的是 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);
        }


    }

试试这可能是你异常的原因

【讨论】:

  • 您会在答案旁边看到一个勾号,上面写着“点击将此答案设置为已接受的答案”,谢谢
  • 我没有看到任何勾号,这是回答你的问题
  • “抱歉,我们不再接受来自此帐户的问题。请参阅goo.gl/C1Kwu 了解更多信息。”有人指导我如何找回我的帐户
猜你喜欢
  • 1970-01-01
  • 2015-01-27
  • 2012-07-17
  • 2012-03-03
  • 1970-01-01
  • 2013-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多