gpt4 book ai didi

c# - 两个模型之间的多重关系

转载 作者:行者123 更新时间:2023-11-30 13:03:46 26 4
gpt4 key购买 nike

我首先使用代码,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) 

我需要知道我做错了什么,或者是否有更合适的方法来解决该问题。

最佳答案

在处理多个连接时,您可能需要具体说明关系。

尝试向您的农场导航属性添加一个外键属性。

[ForeignKey("FarmID")]
public virtual Farm Farm { get; set; }

关于c# - 两个模型之间的多重关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11705223/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com