c# - linq to实体更改代码中的数据库连接字符串

标签 c# linq linq-to-entities entities

我正在使用 postgresql 的 devart 组件 dotconnect。我已经使用 linq toEntity 创建了该网站,但是,我希望每个用户都有一个单独的数据库。这意味着我需要更改每个已登录的人的连接字符串。我了解如何生成新连接字符串等的主要部分,但是,当我将其作为参数传递给对象上下文对象时,它会返回出现错误

“不支持用户 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();

    }

然后创建一个像这样的构造函数

   dataEntities data = new dataEntities(databaseConnection.getConnString(INSERTDBNAMEHERE);

然后我们可以像通常的 linq 语句一样引用它。简单!!

关于c# - linq to实体更改代码中的数据库连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4680388/

相关文章:

c# - EF1 SelectMany() 左连接

c# - 在 3 个实体之间创建导航属性

c# - 表达式... LINQ to Entities 仅支持转换实体数据模型原始类型”

c# - Windows Phone 7.1 ListPicker,进入完整模式的简单方法?

c# - 使用另一个 double 列表对元素列表进行排序

c#:带有多个条件的字典的 Linq

c# - 使用 LINQ to SQL 对所有内容进行分组、求和和聚合

c# - 如果发生任何异常,如何使 Task.WaitAll() 中断?

c# - 使用终结器关闭EventHubClient

c# - 对 Group 和 SUM 值的 LINQ 查询