This question already has answers here:
Stop LINQ to SQL dbml from updating connection string when I drag tables into the dbml file
(2个答案)
6年前关闭。
我们有一个自定义函数
我希望我的LINQ to SQL DataContext使用它,所以我从dbml文件中删除了所有连接字符串信息,并使用如下的默认构造函数创建了部分类:
在我使用设计器将表拖放到图中之前,这种方法可以正常工作。将表拖到图中的 Action 会做一些不需要的事情:
将创建一个设置文件 将创建一个app.config文件 我的dbml文件中将嵌入连接字符串
所有这些都在我保存文件之前完成!
保存该图时,将重新创 build 计器文件,该文件将包含其自己的默认构造函数,该构造函数使用错误的连接字符串。当然,这意味着我的DataContext现在有两个默认的构造函数,而我无法构建了!
我可以撤消所有这些不好的事情,但这很烦人。每次更改后,我都必须手动删除连接字符串和新文件!
无论如何,有没有办法我可以阻止设计师进行这些更改而无需询问?
编辑
在游戏后期,我才被要求使用
(2个答案)
6年前关闭。
我们有一个自定义函数
AppSettings.GetConnectionString()
,该函数始终被调用以确定应该使用的连接字符串。此功能的工作方式与讨论无关紧要。可以说它返回一个连接字符串,我必须使用它。我希望我的LINQ to SQL DataContext使用它,所以我从dbml文件中删除了所有连接字符串信息,并使用如下的默认构造函数创建了部分类:
public partial class SampleDataContext
{
public SampleDataContext() : base(AppSettings.GetConnectionString()) { }
}
在我使用设计器将表拖放到图中之前,这种方法可以正常工作。将表拖到图中的 Action 会做一些不需要的事情:
所有这些都在我保存文件之前完成!
保存该图时,将重新创 build 计器文件,该文件将包含其自己的默认构造函数,该构造函数使用错误的连接字符串。当然,这意味着我的DataContext现在有两个默认的构造函数,而我无法构建了!
我可以撤消所有这些不好的事情,但这很烦人。每次更改后,我都必须手动删除连接字符串和新文件!
无论如何,有没有办法我可以阻止设计师进行这些更改而无需询问?
编辑
在游戏后期,我才被要求使用
AppSettings.GetConnectionString()
方法。我曾经使用过非常类似于它为我产生的东西。有很多地方调用默认构造函数。我知道我会全部更改它们以另一种方式(使用不同的构造函数,静态方法,工厂等)创建数据上下文。这种更改仅会有点烦人,因为它只需要执行一次。但是,我认为这已经绕开了真正的问题。 dbml文件和配置文件仍将包含不正确的连接字符串(如果未使用的话),最多可能会使其他开发人员感到困惑。 最佳答案
在使用DBML的设计器时,可以右键单击任何空白,然后单击“属性”(与右键单击DBML文件并单击“属性”不同)。
从那里,展开“连接”选项。将“应用程序设置”设置为False并清除“连接字符串”设置。这些设置是设计人员用来创建默认构造函数的设置。
从那里,您可以使用在designer.cs文件之外创建的默认构造函数。不幸的是,每次将任何新表添加到设计器时,都必须重复此过程。这很烦人,我感到您的痛苦。