错误:类型 'MVCApp.Models.Order' 的导航属性不是 'System.Collections.Generic.ICollection`1[T]' 的单个实现



Q:我如何在我的订单对象中访问以下OrderStatusType(在我的控制器和剃刀视图中)…使用mvc3/ef4.1/.edmx) ?下面的代码抛出标题中指定的错误。

——控制器代码(错误):

public ViewResult Details(int id)
{
    Order o = db.Orders.Find(id);
    OrderStatusType os = o.OrderStatusType;  // <= This is throwing!
    return View(o);
}

——模型:

public class Order
{
    public int OrderId { get; set; }
    public int Desc { get; set; }
    public int OrderStatusTypeId { get; set; }
    public virtual OrderStatusType OrderStatusType { get; set; }  // Order contains an OrderSTatusType
}
public class OrderStatusType
{
    public int OrderStatusTypeId { get; set; }
    public int Name { get; set; }
}

——Razor (errors):

<div class="display-field">
    @Model.OrderStatusType.Name  @* This throws the same error as well *@
</div>

尝试从edmx文件中删除OrderOrderStatusType表,然后重新添加它们。

我认为您在OrderStatusType类中缺少以下内容:

public virtual ICollection<Order> Order {get;set;}

我已经调用了Order属性,但它应该以与关系结束时相同的方式调用

相关内容

最新更新