gpt4 book ai didi

c# - 在不同的程序集上分布 Entity Framework 模型

转载 作者:太空狗 更新时间:2023-10-30 01:03:04 24 4
gpt4 key购买 nike

目前我正在尝试将 Entity Framework 6.3 与一种分布式模型一起使用。我的问题是,我想在不同的程序集中分离模型(例如核心应用程序和插件)。

现在我正在寻找一种方法,让我的应用程序通过反射或类似的东西获取所有模型,并在启动前在 ef db 上下文中注册所有模型。

Entity Framework 6 可以做到这一点吗?

谢谢。

最佳答案

您可以通过反射在每个装配体中搜索您的模型。

遍历 AppDomain 的程序集并搜索属性、接口(interface)或基类,请参见下面的示例。

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[] { });
}
}
}

关于c# - 在不同的程序集上分布 Entity Framework 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30900372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com