12

每次我将修改后的表拖到我的 dbml 中时,VS2010 都希望我更新连接字符串,即使我已经创建了一个具有完全相同信息的数据连接。每次发生这种情况时,它都会将我的连接字符串更改为“DataSourceConnectionString”,我必须从 5 个不同的文件中删除它,并将其替换为我之前使用的连接字符串的名称,这样它就不会通过源头控制。有任何想法吗?

4

3 回答 3

19

在修补了一些相关问题的答案后,我想出了另一个办法。

为了解决我遇到的问题,我需要从 VS2010 的服务器资源管理器窗口中删除为连接到我的数据库而创建的数据连接。然后您需要打开 .dbml 设计器并右键单击空白区域并选择属性。将打开一个属性窗口,其中将有一个“连接”部分,单击小箭头将其打开。如果单击连接字符串行,则会出现一个带有点(...)的按钮。当您单击此按钮时,它将打开一个连接属性窗口。此窗口将已经拥有您的 .dbml 已经拥有的所有相同连接属性。您所要做的就是单击“确定”,它会在服务器资源管理器中自动为您创建一个数据连接,当您将新对象拖到 .dbml 时,它不会导致您向它添加新的连接字符串!

耶!每次更新时不再删除额外的连接字符串!:D

于 2012-06-27T12:18:40.343 回答
2

实例化 DataContext 时,使用允许您指定连接字符串的重载。这将覆盖设计师放置在那里的任何值。例如,不仅仅是:

DataClasses1DataContext db = new DataClasses1DataContext();

采用:

DataClasses1DataContext db = new DataClasses1DataContext("..connection string..");

或者

DataClasses1DataContext db = new DataClasses1DataContext(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);

希望这是您正在寻找的。

于 2012-06-27T00:33:47.620 回答
0

使用文本编辑器.dbml手动打开并删除连接字符串。连接将类似于

<Connection Mode="" >

然后,您可以使用自己的部分类,如下所示

public partial class MyDataContext : DataContext
{
    public MyDataContext() : base(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString)
    {
        OnCreated();
    }
}
于 2021-10-06T12:38:59.247 回答