每当我将一个新的数据库对象从服务器资源管理器中删除到dbml中时,Visual Studio会将设计器文件中的连接字符串替换为一个新的连接字符串,它会自动添加到我的配置文件中的连接字符串中。它们都具有完全相同的参数,只是名称不同。
如何强制Visual Studio使用并保留我已有的连接字符串?
例如,在dbml-designer.cs中,我有:
base(global::System.Configuration.ConfigurationManager.ConnectionStrings["ConnString1"].ConnectionString, mappingSource)
是自动生成的。在我的配置文件中,我有:
<add name="DefaultConnString" connectionString="EXACTLYTHESAME"
providerName="System.Data.SqlClient" /> <add name="ConnString1" connectionString="EXACTLYTHESAME"
providerName="System.Data.SqlClient" />
每当我将数据库对象拖到dbml时,会自动添加ConnString1。
我希望designer.cs使用DefaultConnstring。
答案 0 :(得分:5)
这里有一篇很好的文章解释了你的选择:
http://blog.jongallant.com/2007/11/linq-web-app-connection-strings.html#.UGA8Q42PUg0
答案 1 :(得分:1)
您需要确保Visual Studio的服务器资源管理器中使用的连接字符串与dbml文件中已定义的连接字符串相同。
我不太确定你用不同的名字是什么意思,你的意思是数据库名称?当我有一个不同的数据库名称用于开发和生产时,我通常做的是在开发时保留开发连接字符串值,但更改主应用程序中的connectionstring值。这是因为我通常在单独的程序集中开发LINQ逻辑。
或者,您保留两个连接字符串:一个用于添加新数据库对象,另一个用于测试,例如。当然,你必须要特别注意跟踪你将使用哪个连接字符串。