繼承我是新來的實體框架和我在網上跟着教程創建我的SQL Server數據庫,並提出了一些模型和上下文類,包括屬性來訪問它們。實體框架 - 從模型
這是我的個人戶口模式:
public class Account
{
public int ID { get; set; }
public string Username { get; set; }
public string Password { get; set; }
}
這是我的上下文類:
public class DashContext : DbContext
{
public DashContext()
: base(Constants.ConnectionString)
{
this.Configuration.LazyLoadingEnabled = true;
this.Configuration.ProxyCreationEnabled = false;
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer<DashContext>(null);
}
public DbSet<Account> Accounts { get; set; }
}
這工作 - 當我訪問DbSet財產我可以訪問所有的帳戶entires在我的數據庫。
但是,我想創建一個Account
類的實現,它包含的屬性不僅僅是列,因爲它必須與我的程序進行交互。
所以,我試圖做到以下幾點:
public class GameAccount : Account
{
public int SomeSpecialProperty { get; set; }
}
然而,當我使用我的上下文類來獲取Account
對象,我不知道如何將它轉換爲GameAccount
。我知道我可以創建一個構造函數,複製特性從Account
到GameAccount
,像這樣:
public class GameAccount
{
public int ID { get; private set; }
public string Username { get; private set; }
public string Password { get; private set; }
public GameAccount(Account model)
{
this.ID = model.ID;
this.Username = model.Username;
this.Password = model.Password;
}
}
...但似乎有點inefficent給我,我敢肯定有一個簡單的方法。
您認爲如何?
創建像'公共DbSet遊戲帳戶的上下文中的另一個屬性{獲取;集;}'有你有所有這些行。 –
dcg
@dcg這是不正確的。實體框架將嘗試查詢名爲「GameAccount」的表。 –