4

私は最初にコードを使用し、MVC3アプリでEF 4.1を使用しており、2つのモデル
間に2つの関係があります。これらのモデルを参照するクラスは次のとおりです。

    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; }
 }

1つの関係は、1対1または複数の理由で、牛は農場にしか存在できず、農場には多くの牛が含まれる可能性があります。別の関係は多対多であり、農場間で牛を転送することができ、FluentAPIを使用して転送を保存するための3番目のテーブルを生成します。また、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) 

何が間違っているのか、またはその問題を解決するためのより適切な方法があるかどうかを知る必要があります。

4

1 に答える 1

0

複数の結合を処理する場合は、関係について具体的に説明する必要がある場合があります。

ファームナビゲーションプロパティに外部キー属性を追加してみてください。

[ForeignKey("FarmID")]
public virtual Farm Farm { get; set; }
于 2012-07-31T14:25:34.993 に答える