如何让 .NET CLI 知道哪个连接用于上下文?
Posted
技术标签:
【中文标题】如何让 .NET CLI 知道哪个连接用于上下文?【英文标题】:How to make .NET CLI know which connection to use for a context? 【发布时间】:2022-01-18 16:28:32 【问题描述】:我的项目中有 EF Core 3.1。我有一个在 Startup 中配置的上下文
services.AddDbContext<YourDbContext>(options =>
options.UseSqlServer(Configuration.GetSection("YourConn").Value);
options.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking);
);
我知道在应用程序启动期间连接字符串是明确的,但是当我想这样做时:
dotnet ef database update
它如何知道使用什么连接?
【问题讨论】:
你需要在你的启动项目目录下定义项目或者运行这个命令。 @tmsbrndz 但它如何知道给定上下文使用哪个连接字符串? 【参考方案1】:对于 EF Core 5.0,您可以执行以下操作:
dotnet ef 数据库更新命令现在接受一个新的 --connection 参数来指定连接字符串。
对于旧版本,您可以在命令中指定启动项目,它将使用相同的配置:
dotnet ef database update --startup-project ../YourProject.csproj
【讨论】:
以上是关于如何让 .NET CLI 知道哪个连接用于上下文?的主要内容,如果未能解决你的问题,请参考以下文章
NSFetchRequest 如何知道哪个托管对象上下文在范围内?