0
I持つクラス:ロードしていない多くの関係コレクションに多くの
- 静的クラスプログラム
- パブリッククラスあるMyContext
- パブリッククラスユーザー
- パブリッククラス権限
- のpublic staticクラスのlocalStorage
- 公開列挙項目
はごとにコードされている:ログイン時に
static class Program {
static void Main() {
Permissions p = new Permissions() { PermissionName = Permission.ReadUser } ;
User mirian = new User() { UserName = "miri", Password="123", PasswordChanged=true, Permissions = new List<Permissions>() {} };
mirian.Permissions.Add(p);
using (var db = new MyContext()) {
db.Permissions.Add(p);
db.Users.Add(mirian);
db.SaveChanges();
}
}
}
public class MyContext : DbContext {
public MyContext() : base("AppEntityDB") {
System.Data.Entity.Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());
}
public virtual DbSet<User> Users { get; set; }
public virtual DbSet<Permissions> Permissions { get; set; }
}
public class User : BaseCore {
MyContext _db = new MyContext();
[Key]
public int ID { get; set; }
[MaxLength(20)]
public string UserName { get; set; }
public ICollection<Permissions> Permissions { get; set; }
public bool Login(string username, string password) {
using (_db) {
var _userlist = _db.Users.Where(c => c.IsActive == true
&& c.UserName == username
&& c.Password == password).SingleOrDefault();
if (_userlist != null) {
LocalStorage.CurrentUser = _userlist;
return true;
}
return false;
}
}
}
public class Permissions : BaseCore {
[Key]
public int ID { get; set; }
public Permission PermissionName{ get; set; }
public ICollection<User> User { get; set; }
}
public enum Permission : byte {
ManageAccounts = 0,
ReadUser = 1,
WriteUser = 2,
ReadProduct = 3,
WriteProduct = 4,
}
public static class LocalStorage {
public static User CurrentUser { get; internal set; }
}
iがエンティティ+ LINQによってベースから採取した現在のユーザオブジェクトにLocalStorage.CurrentUser
を割り当てるUser.Login()メソッドを呼び出します。
私がLocalStorage.CurrentUser.Permissions
を呼び出すと、私はそれが現在のユーザーを持つアクセス許可の一覧を返すと予想します。値はnull
となるでしょうか?