我首先使用代码而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; }
}
一种关系是一对一或多种关系,因为catle只能在农场中,而农场可以包含许多catles。另一个关系是很多甚至很多,可以在农场之间转移catle,我会生成第三个表来使用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)
我需要知道我做错了什么,或者是否有更合适的方法来解决这个问题。
答案 0 :(得分:0)
处理多个连接时,您可能需要具体了解关系。
尝试将“外键”属性添加到“场”导航属性中。
[ForeignKey("FarmID")]
public virtual Farm Farm { get; set; }