使用EF4 Code First,您可以创建和编译类和DbContext。如果您想在已编译的模型集的dll中添加一些类/表和关系,会发生什么情况?
到目前为止,我想出的解决方案是使用“partial”类,稍后会被补充,第二个解决方案是编写一个包含第一个dbcontext的全新dbcontext或扩展它的dbcontext,但这意味着每个模块(每个dbcontext)额外的db连接。对此有任何想法吗?最佳实践是什么?还需要能够使用迁移。
更明确地说,可能的情况如下:
A)您创建一个带有某些dbContextBase类和表(类)的.dll。
B)您创建其他.dll,这些.dll以自己的方式依赖/扩展了dbContextBase*
C)您在项目中引用了这些.dll并对其进行了扩展。
所以基本上您可以有一个核心dbContext,然后向其中添加菜单模块,然后向其中添加博客模块(但可以通过菜单模块查看以创建最新的博客文章菜单等)。除此之外,如果您想要针对博客的特定一次性功能,可以快速集成它,但也可以保持您的博客模块可更新性。
随着我开始看到它,最好的方法是使用源代码为每个模块提供模型(等)的Nuget包,而不是编译的dll。
到目前为止,我想出的解决方案是使用“partial”类,稍后会被补充,第二个解决方案是编写一个包含第一个dbcontext的全新dbcontext或扩展它的dbcontext,但这意味着每个模块(每个dbcontext)额外的db连接。对此有任何想法吗?最佳实践是什么?还需要能够使用迁移。
更明确地说,可能的情况如下:
A)您创建一个带有某些dbContextBase类和表(类)的.dll。
B)您创建其他.dll,这些.dll以自己的方式依赖/扩展了dbContextBase*
C)您在项目中引用了这些.dll并对其进行了扩展。
所以基本上您可以有一个核心dbContext,然后向其中添加菜单模块,然后向其中添加博客模块(但可以通过菜单模块查看以创建最新的博客文章菜单等)。除此之外,如果您想要针对博客的特定一次性功能,可以快速集成它,但也可以保持您的博客模块可更新性。
随着我开始看到它,最好的方法是使用源代码为每个模块提供模型(等)的Nuget包,而不是编译的dll。