public class Customer
{
public int CustomerId { get; set; }
public string MembershipId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailAddress { get; set; }
}
public class Company
{
public string MembershipId { get; set; }
public string Name {get; set;}
}
public class CustomersBankAccount
{
public string Name {get; set;}
public int CustomerId { get; set; }
}
コード ファーストの規則でデータベースを構築する場合の規則は、"Id" (外部キー) 部分をプロパティに統合することです。もちろん、EF がコードを把握して一部の機能を有効にできるように、すべてのプロパティを仮想として宣言することをお勧めします。効率的な追跡メカニズムのように
そのため: ID という名前のオブジェクトにプロパティがある場合、EF はプロパティが主キー値を保持していると想定し、プロパティ値を保持するために SQL Server に自動インクリメント (ID) キー列を設定します。
編集:
「オン・ザ・オブジェクト」とは、顧客のオブジェクトを意味します。基本的に、この例の主キーは customer にあり、外部キーは customer に関連する他のすべてのテーブルにあります。主キーを複製または null にすることはできません。外部キー - はい。同じ顧客が複数の銀行口座を持っている可能性があります。:) だから、あなたの鍵を設定するための配管はどこにあるのか疑問に思っているなら、やめてください。MVC は上記のコードを調べて、DB でテーブルを作成する方法を (足場の選択に基づいて) 決定するだけです。既に見たもの ("Id" と end ) を除いて、コードで何も示す必要はありません。
私のコメントに基づいて編集します。
public class Customer
{
public int CustomerId { get; set; }
[Remote("CheckMembershipIdActionMethod", "CorrespondingController")]
public string MembershipId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailAddress { get; set; }
}