私はこのシナリオがあります:表1にEntity Frameworkの外部キーの複数のテーブルマッピング
public class Application
{
[Key]
public string Code { get; set; }
}
public class Table1
{
[Key]
public string Table1Code { get; set; }
[Key, ForeignKey("ApplicationObject")]
public string Application { get; set; }
public virtual Application ApplicationObject { get; set; }
}
public class Table2
{
[Key]
public string Table2Code { get; set; }
[Key, ForeignKey("ApplicationObject")]
public string Application { get; set; }
public virtual Application ApplicationObject { get; set; }
}
public class Table3
{
[Key, ForeignKey("Table1Object")]
public string Table1Code { get; set; }
public virtual Table1 Table1Object { get; set; }
[Key, ForeignKey("Table2Object")]
public string Table2Code { get; set; }
public virtual Table2 Table2Object { get; set; }
[Key, ForeignKey("Table1Object")]
public string ApplicationCodeTab1 { get; set; }
[Key, ForeignKey("Table2Object")]
public string ApplicationCodeTab2 { get; set; }
}
をし、私は別のアプリケーションのために同じコードを持つことができるため、プロパティのapplicationCodeはキーでなければならない表2。
表3では、私は表1と表2を参照しました。プロパティを重複させずにApplicationCodeプロパティに外部キーを追加するにはどうすればよいですか?例については
:
public class Table3
{
[Key, ForeignKey("Table1Object")]
public string Table1Code { get; set; }
public virtual Table1 Table1Object { get; set; }
[Key, ForeignKey("Table2Object")]
public string Table2Code { get; set; }
public virtual Table2 Table2Object { get; set; }
[Key]
public string ApplicationCode { get; set; }
}
表3でApplicationCodeプロパティは、同じ時間に表1と表2のための外部キーをrapresentことができますか?
私はEFに新しいです... [= 1のForeignKey( "Table1Object")、キー順] ' ' [キー、ForeignKeyの(データ注釈 を '使用するようにしてください"Table2Object"、order = 2)] 'となります。その正しい場合は、回答を投稿するように教えてくれる –
こんにちは@dim mikがプロジェクトをビルドしていない! ありがとう – Marco
それは匂いのようなものです:)私はデザイン(ApplicationTable1ジャンクションテーブルを導入する)または[継承](https://docs.microsoft.com/en-us/aspnet/)を使用して多対多に行きます。 mvc/overview/getting-started-with-ef-using-mvc /実装継承 - エンティティ - フレームワーク - as-asp-net-mvcアプリケーション)をdiscriminatorとして使用します。 –