我有一個與我的域 - 「Domains.dll」類的程序集。我動態地添加到我的DbContext Dbset加載類的程序集。實體框架(代碼優先) - 動態構建模型
public class MyContext : DbContext
{
public MyContext() : base("DBConnection"){}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Assembly assembly = Assembly.LoadFrom("Domains.dll");
var entityMethod = typeof(DbModelBuilder).GetMethod("Entity");
var list = assembly.GetTypes().OrderBy(i => i.GetType().Name);
foreach (Type item in list)
{
entityMethod.MakeGenericMethod(item)
.Invoke(modelBuilder, new object[] { });
}
}
}
接下來,我創建數據庫
context.Database.Create();
這可是工作與我的域名問題。我有一個父實體
public abstract class Entity
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
}
public class Person : Entity
{
public string FirstName {get ;set;}
public string LastName {get ;set;}
}
一類。如果現在我運行一個數據庫 - 表「人」是不是create.It創建一個表「實體」有場標識,名字,姓氏。
如果我修改Person
public class Person
{
public int Id {get; set;}
public string FirstName {get ;set;}
public string LastName {get ;set;}
}
然後在數據庫中的兩個表創建 - '人' 和 '實體'。我如何使用繼承?我該如何做對?
我知道這個線程是很老了!但是你是否遇到了這個問題? **自動更新數據庫?** – Flo