如何获取连接字符串中指定的当前登录用户的架构名称?
我需要获取架构名称,因为 WebSecurity.InitializeSimpleMembership 使用当前登录用户的默认架构创建表。我需要将自定义 UserProfile 实体映射到创建的简单成员资格的用户配置文件。我不想重新创建简单的成员(member) POCO。我只想分配自定义 UserProfile 实体的默认架构以匹配简单成员资格默认架构。
最佳答案
您可以尝试如下所示。这只是一个标准代码片段,您可以在其中获取连接字符串的架构详细信息。
using (var context = new MyContext())
{
//retrieve object model
ObjectContext objContext = ((IObjectContextAdapter)context).ObjectContext;
//retrieve name types
var nameTypes = objContext.MetadataWorkspace.GetItems<EntityType>(DataSpace.OSpace);
//set a connection String
var connectionString = objContext.Connection.ConnectionString;
var connection = new EntityConnection(connectionString);
var workspace = connection.GetMetadataWorkspace();
var entitySets = workspace.GetItems<EntityContainer>(DataSpace.SSpace).First().BaseEntitySets;
for (int i = 0; i < nameTypes.Count; i++)
{
Type type = Type.GetType(nameTypes[i].FullName);
string schema = entitySets[type.Name].MetadataProperties["Schema"].Value.ToString();
}
}
关于c# - 如何获取当前数据库用户的默认架构名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39826034/