三つのクラスの実体、TUsers(ユーザーベース)、(文字)ベースTRoles、TUsersRoles(ユーザの役割のカテゴリが)今があり、ユーザーは複数の文字に対応することができ、文字は、ユーザー、複数のユーザに対応してもよいし、役割は、多くの関係しています。
(主エンティティで定義された)方法であって、次のように
パブリック クラスTUsers { [キー] パブリック int型ユーザーID { 取得します。セット; } パブリック 文字列アカウント{ 取得します。セット; } パブリック 文字列のパスワード{ 取得します。セット; } 公共のDateTime CREATEDATE { 得ます。セット; } 公共の一覧<TUsersRoles> TUsersRolesList { 取得します。セット; } } パブリック クラスTRoles { [キー] 公共 のint Idを{ 取得します。セット; } パブリック 文字列ロール名{ 得ます。セット; } パブリック 文字列 RoleRemark { 得ます。セット; } 公共の一覧<TUsersRoles> TRolesUsersList { 取得します。セット; } } パブリック クラスTUsersRoles { [キー] パブリック INTイド{ 得ます。セット; } }
以下に示すようなテーブル構造を生成します。
私たちは、外部キールールの生産があることがわかります「_クラス名の主キー。」
(エンティティの定義における)方法2を、次のように:
パブリック クラスTUsers { [キー] パブリック int型ユーザーID { 取得します。セット; } パブリック 文字列アカウント{ 取得します。セット; } パブリック 文字列のパスワード{ 取得します。セット; } 公共のDateTime CREATEDATE { 得ます。セット; } } パブリック クラスTRoles { [キー] パブリック INTイド{ 得ます。セット; } パブリック 文字列のロール名{ 取得します。セット; } パブリック 文字列 RoleRemark { 得ます。セット; } } パブリック クラスTUsersRoles { [キー] パブリック INTイド{ 得ます。セット; } パブリック 仮想 TUsersユーザ{ 取得します。セット; } パブリック 仮想 TRoles役割{ 得ます。セット; } }
外部キー生成規則「オブジェクト名_主キー。」
以下のように、多くの関係は、管理テーブルを生成し、自動的に作成することができます。
public class TUsers { [Key] public int UserId { get; set; } public string Account { get; set; } public string Password { get; set; } public DateTime CreateDate { get; set; } public List<TRoles> Roles { get; set; } } public class TRoles { [Key] public int Id { get; set; } public string RoleName { get; set; } public string RoleRemark { get; set; } public List<TUsers> Users { get; set; } }
生成的表结构