1

ここでは、asp.net mvc でモデル構造を作成しました。

public class UserModel
{
    public int UserId {  get;  set;  }
    public string UserName  {  get;   set;  }
    public string Password   {    get; set;    }
    public List<Permission> Permissions {   get;   set;  }
    public string FirstName {  get;  set;  }
    public string LastName {  get;   set;  }
}

public class Permission
{
    public int PermissionID {   get;  set;   }
    public bool IsPermit   {  get;  set;  }
    public string Name  {  get;  set;  }
}

リストにいくつかのデフォルト値を設定し、リストにユーザーを追加しているときに、ユーザーが割り当てられたページのみにアクセスできるように、UI を介して (アクセス許可のチェックボックスをオンにして) そのユーザーにページのアクセス許可を割り当てます。

public static class Repository
{
    public static List<UserModel> GetUsers()
    {
        List<UserModel> listUsers = new List<UserModel>
        {
            new UserModel
            {
                UserId = 1,
                UserName = "abc",
                Password = "abc",
                Permissions = new List<Permission>
                {
                    new Permission
                    {
                        PermissionID = 1,
                        IsPermit = true,
                        Name = "Page1"
                    },
                    new Permission
                    {
                        PermissionID = 2,
                        IsPermit = false,
                        Name = "Page2"
                    },
                    new Permission
                    {
                        PermissionID = 3,
                        IsPermit = false,
                        Name = "Page3"
                    },
                    new Permission
                    {
                        PermissionID = 4,
                        IsPermit = false,
                        Name = "Page4"
                    }
                },
                FirstName = "Rohit",
                LastName = "Sharma"
            },

            new UserModel
            {
                UserId = 2,
                UserName = "xyz",
                Password = "xyz",
                Permissions = new List<Permission>
                {
                    new Permission
                    {
                        PermissionID = 1,
                        IsPermit = false,
                        Name = "Page1"
                    },
                    new Permission
                    {
                        PermissionID = 2,
                        IsPermit = true,
                        Name = "Page2"
                    },
                    new Permission
                    {
                        PermissionID = 3,
                        IsPermit = true,
                        Name = "Page3"
                    },
                    new Permission
                    {
                        PermissionID = 4,
                        IsPermit = true,
                        Name = "Page4"
                    }
                },
                FirstName = "Rahul",
                LastName = "Sharma"
            }
        };

        return listUsers;
    }
}

今、私は DbContext クラスの助けを借りてデータベースのコードファーストアプローチを使用して同じことをしたいと思っています. データベース テーブルにページ権限の静的リストがあります (ID =1、名前 = ページ 1、ID = 2、名前 = ページ 2、ID = 3、名前 = ページ 3、ID = 4、名前 = ページ 4)。

データベースのモデル構造を作成中に混乱しています。モデル構造の作成方法とテーブルとの構造のマッピング方法を教えてください。

データベースにデフォルトの行を持つテーブル (権限) があります。

ID Name

1 Page1

2 Page2

3 Page3

4 Page4

ここで、ユーザーを追加するときに、静的チェックボックス (Page1、Page2、Page3、および Page4) を介してそのユーザーにアクセス許可を割り当てます。そのため、ページのリストを含むデータベースに静的テーブルを作成しました。私の User テーブルは最初は空白です。

User

Id            int             NotNull

UserName      nvarchar(100)   AllowNull

Password      nvarchar(100)   AllowNull

FirstName     nvarchar(100)   AllowNull

LastName      nvarchar(100)   AllowNull
4

1 に答える 1

0

コードを最初に使用する場合は、以下の構造を使用できます。コードを最初に使用する場合は、規則を維持する必要があります(ただし、Fluent APIを使用する場合は変更できます)。

モデルクラス

public class User
{
    public int Id {  get;  set;  }
    public string UserName  {  get;   set;  }
    public string Password   {    get; set;    }
    public string FirstName {  get;  set;  }
    public string LastName {  get;   set;  }

    public virtual ICollection<Permission> Permissions {   get;   set;  }

}

public class Permission
{
    public int Id {   get;  set;   }
    public bool IsPermit   {  get;  set;  }
    public string Name  {  get;  set;  }

    public virtual User {   get;   set;  }

}

テーブル(これは自動生成されますが、必要に応じて手動で作成することもできます)

Users

Id            int             NotNull
UserName      nvarchar(100)   AllowNull
Password      nvarchar(100)   AllowNull
FirstName     nvarchar(100)   AllowNull
LastName      nvarchar(100)   AllowNull


Permissions

Id            int             NotNull
IsPermit      bit             AllowNull
Name          nvarchar(100)   AllowNull
User_Id       int             NotNull

DbContext派生クラス

public class UserEntities : DbContext
    {
       public DbSet<User> Users { get; set; }
       public DbSet<Permission> Permissions { get; set; }
    }

詳細については、EntityFrameworkを使用したコードファースト開発を確認してください

これがお役に立てば幸いです。

于 2012-12-26T16:05:18.677 に答える