我正在开发代码第一个EF6应用程序,我有一个包含相关实体的问题。实体框架 - 替换相关实体不包括
我有模式是这样的:
public class Product
{
[Key]
[JsonProperty(Order = 0)]
[JsonIgnore]
public int ProductID { get; set; }
[Required]
[JsonProperty(Order = 1)]
public string Name { get; set; }
[Required]
[JsonProperty(Order = 2)]
public virtual Shop Shop { get; set; }
[Required]
[JsonProperty(Order = 3)]
public virtual ProductCategory Category { get; set; }
[Required]
[JsonProperty(Order = 4)]
public double Price { get; set; }
[JsonProperty(Order = 5)]
public double? OldPrice { get; set; }
}
我的上下文有DBSets,如:
public System.Data.Entity.DbSet<PromoCeny.Models.Product> Products { get; set; }
public System.Data.Entity.DbSet<PromoCeny.Models.ProductCategory> ProductCategories { get; set; }
public System.Data.Entity.DbSet<PromoCeny.Models.Shop> Shops { get; set; }
我试图访问所有Product
对象,如:
db.Products
我正在获取Products
的列表,但是两个属性Shop
和Category
是null
这很奇怪,但我有一个工作解决方案,在这样的东西结果适当的对象(与所有属性设置正确),但我找不到这些项目之间的区别。
我试图从模型属性中删除virtual
标志,但这也不起作用。
当然,我可以得到产品的列表,如:
db.Products.Include(product => product.Shop).Include(product => product.Category)
但我想避免这种情况。
你知道如何处理吗?
编辑:
刚才我想通了,我有实体的禁用延迟加载。
我已删除,如:
this.Configuration.LazyLoadingEnabled = false;
从语境和它的工作现在。
我已经想通了。看我的编辑 – Tomasz 2014-09-26 14:14:19