MVC 4 Beta - 在使用本地名称"__type"编写属性后,必须编写属性"type"="object"

bdp*_*ish 6 c# asp.net-mvc entity-framework

我正在使用新的MVC 4 Beta中的WebAPI.在尝试获取具有virtual ICollection<>要填充的属性的实体时,我遇到了此错误.有没有办法解决这个问题呢?我知道这是在Beta阶段,所以这可能会在未来发生.如果有一个解决方案,这只是一个好奇心.

bdp*_*ish 2

我通过删除 virtual 关键字并确保在我的存储库中的 Include 语句中提供确实具有 virtual 关键字的对象和集合来实现此目的。

public class Order
{
    public int ID { get; set; }
    public DateTime OrderDate { get; set; }
    public ICollection<Product> Products { get; set; }
}

public interface IOrderRepository
{
    IQueryable<Order> Orders { get; }
    void SaveOrder(Order order);
    void DeleteOrder(Order order);
}

public class OrderRepository
{
    StoreDbContext db = new StoreDbContext();

    public IQueryable<Order> Orders
    {
        get { return db.Orders.Include("Products"); }
    }

    public void SaveOrder(Order order)
    {
        db.Entry(order).State = order.ID == 0 ? 
                EntityState.Added : 
                EntityState.Modified;

        db.SaveChanges();
    }

    public void DeleteOrder(Order order)
    {
        db.Orders.Remove(order);

        db.SaveChanges();
    }
}
Run Code Online (Sandbox Code Playgroud)