gpt4 book ai didi

entity-framework - 如何使用 Code First( Entity Framework )和 DbContext 获取实体的架构名称?

转载 作者:行者123 更新时间:2023-12-02 06:42:55 25 4
gpt4 key购买 nike

我们的数据库的设计方式是有各种用于生产的模式和各种用于测试的等效模式。例如,许多表位于 MyProduction 架构中,而相同的表位于 MyTest 架构中。

我想要做的是确定表正在使用哪种架构,以便我知道将其更改为哪个架构。因此,默认情况下,一切都将在生产模式下。在 DbContext 的 OnModelCreating 事件中,如果我需要指向测试(由某些 true/false 配置确定),我需要确定正在使用的生产模式,然后将其指向它的测试等效项。

我已经知道如何设置架构,但找不到如何获取它。有什么想法可以确定表正在使用的架构吗?

谢谢。

最佳答案

根据您本地设置修改后尝试以下代码:

var context = new YouDbContext("ConnectionName");
var adapter = (IObjectContextAdapter)context;
var objectContext = adapter.ObjectContext;
EntitySetBase schema = null;
if (objectContext.MetadataWorkspace != null)
{
schema = objectContext.MetadataWorkspace
.GetItems<EntityContainer>(DataSpace.SSpace).First()
.BaseEntitySets
.First(meta => meta.ElementType.Name == "ClassNameUnderYourDbContext");
}
//See the properties of schema in debug mode to understand details

关于entity-framework - 如何使用 Code First( Entity Framework )和 DbContext 获取实体的架构名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9434027/

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