我首先使用代码,EF 4.1 是我的 MVC3 应用程序,并且有两个模型,
它们之间有两种关系。以下是引用这些模型的类:
public class Cattle
{
public int CattleID { get; set; }
public int FarmID { get; set; }
public int SituationID { get; set; }
public int DiscardID { get; set; }
public int Stamp { get; set; }
public string Sex { get; set; }
public string Condition { get; set; }
public virtual Farm Farm { get; set; }
[InverseProperty("Cattles2")]
public virtual ICollection<Farm> Farms { get; set; }
}
public class Farm
{
public int FarmID { get; set; }
public string Name { get; set; }
public virtual ICollection<Cattle> Cattles { get; set; }
public virtual ICollection<Cattle> Cattles2 { get; set; }
}
一种关系是一对一或多的,因为一头牛只能在农场中,而一个农场可以包含许多牛。另一个关系是多对多的,牛可以在农场之间转移,我会生成第三个表来使用 Fluent API 存储转移。我还想在新表中插入一个 Date 属性,但不知道该怎么做。这是 OnModelCreating 方法中 FarmContext 中的代码:
modelBuilder.Entity<Catle>()
.HasMany(c => c.Farms).WithMany(i => i.Catles)
.Map(t => t.MapLeftKey("CatleID")
.MapRightKey("FarmID")
.ToTable("CatleTransfer"));
当我构建项目时,它似乎工作正常,生成的表 Catle 和 Farm 由 FarmInitializer 提供,但在 Catle 的索引页面中缺少一些指向这种关系的信息。它对我来说是空白的。这是获取信息的代码:
@Html.DisplayFor(modelItem => item.Farm.Name)
我需要知道我做错了什么,或者是否有更合适的方法来解决该问题。