Ben*_*dEg 4 .net c# entity-framework model entity-framework-6
目前我正在尝试使用实体框架6.3和一种分布式模型.我的问题是,我想在不同的程序集中分离模型(例如核心应用程序和插件).
现在我正在寻找一种方法,我的应用程序可以通过反射或类似的东西获得所有模型,并在启动之前在ef db上下文中注册所有模型.
这可能与实体框架6有关吗?
谢谢.
您可以在反射中搜索每个装配中的模型.
迭代AppDomain的程序集并搜索属性,接口或基类,请参阅下面的示例.
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
var entityMethod = typeof(DbModelBuilder).GetMethod("Entity");
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
{
var entityTypes = assembly
.GetTypes()
.Where(t =>
t.GetCustomAttributes(typeof(PersistentAttribute), inherit: true)
.Any());
foreach (var type in entityTypes)
{
entityMethod.MakeGenericMethod(type)
.Invoke(modelBuilder, new object[] { });
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
666 次 |
| 最近记录: |