首页 > 解决方案 > 使用属性覆盖数据模型约定

问题描述

我们知道一个应用程序可能有多个DbContext,所以当添加一个迁移时,我们需要指定我们想要操作的上下文

dotnet ef 迁移添加 Initial --context XXXContext

所以当我们使用属性时:

[Table("Colors")]
public class Style 
{
...
}

我们是否还需要指定表存在于哪个上下文中?对于我的示例,可能有两个数据库(因此两个DbContext),每个数据库都可以是一个名为“Colors”的表,那么在使用属性时如何指定要操作的上下文?

标签: c#entity-framework

解决方案


我认为,如果您想在一个应用程序中处理两个数据库,最好将其分隔在两个库项目中,并实现实体框架和一个使用这些库的应用程序。

示例:您有两个数据库UsersCompanies因此您将有两个库(框架)项目User.FrameworkCompany.Framework并且当您添加实体时,只需选择它将是哪个数据库/框架。

您正在运行的应用程序将使用这两个框架,如果您在“包管理器控制台”上使用 Visual Studio,您可以选择要为哪个项目执行实体框架命令,例如update database. (或者cd到项目目录用命令行执行EF命令)


推荐阅读