在許多項目中,我不得不做出一個表包含用戶和執行標準的基於用戶的功能,例如認證,節能等,所以我決定把包含這些功能的一個類庫,例如:實體框架可擴展的框架
public class User
{
public int? Id {get;set;}
public string UserName {get;set;}
public string Password {get;set;}
}
public class MyDbContext : DbContext
{
public DbSet<User> {get;set;}
}
public class UserService
{
public MyDbContext Context {get;set;} // will be initialized in constructor
public User GetByUserName(string username)
{
return (from s in Context.Users where s.UserName.Equals(username) select s).SingleOrDefault();
}
// etc...
}
現在,當我開始一個新的Mvc項目時,我添加了這個庫,並擴展了DbContext與自定義模型。問題是我不知道如何使用一些額外的字段擴展用戶表,例如:
public class MyUser : User
{
public bool IsApproved {get;set;}
}
public class CustomDbContext : MyDbContext
{
public DbSet<SomeOtherModel> {get;set;}
// problem: override DbSet in MyDbContext with class MyUser?
//public DbSet<MyUser> {get;set;}
}
在這種情況下,我還需要重寫MyDbContext
的DbSet<User>
。如果我刪除庫中的DbSet<User>
,我的UserService
類將不再起作用。任何想法如何使一個可擴展的框架?
謝謝,這工作正常! – Marthijn 2012-02-27 14:03:57