EF5 - 导航属性未在逆向工程代码第一模型中加载

时间:2013-07-31 15:01:41

标签: entity-framework ef-code-first navigation-properties

我正在用键盘敲击键盘,基本上我想要做的就是相当简单。

我使用EF Power Tools逆向设计了一个现有的数据库,我这样做主要是因为所讨论的数据库已经很老了,并且缺少很多外键,甚至是主键。目标是能够向生成的模型添加导航属性,主要是为了在查询模型时拥有更清晰的代码。

现在我有2个班UserCostCentre,使用正确的主键映射到各自的表UsersCostCentresUsers的PK为{ {1}}在Username中命名为Userid,这两者之间的理论关系为1到M(一个用户可以有多个CostCentre)。 我向CostCentres添加了一个导航属性,如此

User

我正在使用简单的

初始化默认构造函数中的列表
public virtual ICollection<CostCentre> CostCentres { get; set; }

public User() { CostCentres = new List<CostCentre>(); } 我添加了一个像这样的用户属性

CostCentre

在生成的 public virtual User User { get; set; } 类中,我映射了导航属性,如此

CostCentreMap

现在每当我查询 this.HasRequired(cc => cc.User) .WithMany(u => u.CostCentres) .HasForeignKey(cc => cc.Userid); 我都无法填写属性时,我知道导航属性的工作类型,因为当我这样做时

db.Users

生成的查询会在每个表中的正确列上正确连接,但是如果我这样做

db.Users
.Include(u => u.CostCentres);

属性User user = db.Users .Include("CostCentres") .SingleOrDefault(u => u.Username == userName); 保持为空。

我很确定我错过了一些非常明显的东西,但是对于Barnaby Jones的爱,我无法掌握什么。 任何帮助将不胜感激。

0 个答案:

没有答案