レガシー データベースに次のテーブルがあります。
データ dataid PK、年、番号
data_1 dataid PK、note_1、完了
data_2 dataid PK、note_2、タイプ、オブジェクト
data_other dataid PK, note_other, a, b, c
私のモデルクラスは次のようになります。
public class Data
{
public int DataID { get; set; }
public int Year { get; set; }
public int Number { get; set; }
}
public class Data1
{
public int DataID { get; set; }
public int Note1{ get; set; }
public int Completed { get; set; }
}
public class Data1
{
public int DataID { get; set; }
public int Note2 { get; set; }
public string Type { get; set; }
public string Object { get; set; }
}
public class DataOther
{
public int DataID { get; set; }
public int NoteOther { get; set; }
public string A { get; set; }
public string B { get; set; }
public string C { get; set; }
}
public DbSet<Data> Datas { get; set; }
public DbSet<Data1> Data1s { get; set; }
public DbSet<Data2> Data2s { get; set; }
public DbSet<DataOther> DataOthers { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Data>().ToTable("data");
modelBuilder.Entity<Data>().HasKey(t => t.DataID);
modelBuilder.Entity<Data1>().ToTable("data_1");
modelBuilder.Entity<Data1>().HasKey(t => t.DataID);
modelBuilder.Entity<Data2>().ToTable("data_2");
modelBuilder.Entity<Data2>().HasKey(t => t.DataID);
modelBuilder.Entity<DataOther>().ToTable("data_other");
modelBuilder.Entity<DataOther>().HasKey(t => t.DataID);
}
チュートリアルやブログからさまざまな解決策を試しましたが、実現できないようです。
modelBuilder.Entity<Data>()
.HasRequired(a => a)
.WithMany()
.HasForeignKey(a => a);
私が見ている問題は、主キーしかなく、外部キーがないことです。私はMVC3とEntity Framework 5を使用しています。私が望むのは、たとえば@Model.Datas.Others.NoteOtherのビューでのみ実行することです
しかし、これらのテーブル間の関係を作成する方法に関するヒントは素晴らしいです!