Dan*_*rly 2 c# linq linq-to-entities entities
我正在使用postgresql的devart组件dotconnect.我使用linq创建了实体站点,但是,我希望每个用户都有一个单独的数据库.这意味着我需要为已登录的每个人更改连接字符串.我理解如何生成新连接字符串等的主要部分,但是,当我将其作为参数传递给对象上下文对象时,它会返回有错误
"不支持用户ID关键字,"
如果我创建一个生成实体连接的类,则错误消息将更改为:
"无法加载指定的元数据资源."
在这些情况下无法弄清楚我做错了什么.
好吧,像往常一样,当我发布这个问题时,大约3分钟后我发现了问题.实体连接字符串,一般来说应该有一个很酷的小
RES://*/
这使元数据工作.这解决了元数据资源的问题,这是有效的.因此,为了帮助那些可能像我一样花费开发时间的人,我创建了一个类,使用这样的方法.
public static string getConnString(string database)
{
string connectionstring = "User Id=USER ID HERE;Password=PASSWORD HERE;Host=server;Database="+database+";Persist Security Info=True;Schema=public";
EntityConnectionStringBuilder newconnstring = new EntityConnectionStringBuilder();
newconnstring.Metadata = @"res://*/";
newconnstring.Provider = "Devart.Data.PostgreSql";
newconnstring.ProviderConnectionString = connectionstring;
return newconnstring.ToString();
}
Run Code Online (Sandbox Code Playgroud)
然后像这样创建一个构造函数
dataEntities data = new dataEntities(databaseConnection.getConnString(INSERTDBNAMEHERE);
Run Code Online (Sandbox Code Playgroud)
然后我们可以像通常的linq语句一样引用它.Simples!