构造函数不断消失

时间:2014-06-10 17:03:56

标签: c# visual-studio constructor datacontext

我有一个与sql数据库交互的c#程序。我使用服务器资源管理器添加了数据库,现在有一个dbml文件与之交互。名称是MasterDatabase.dbml。 IDE在MasterDatabase.designer.cs中生成了几个重载的构造函数。

我添加了另一个不带参数的重载构造函数(计算机生成的每个构造函数至少需要一个参数)。代码与这个重载的构造函数完美配合,但它偶尔会消失!构造函数将存在几天,然后有一天我将运行我的代码并得到一堆错误,说没有构造函数接受0参数。然后我将回到MasterDatabase.designer.cs,我的构造函数不再存在。所以我再次添加它,循环重复。

以前有没有人经历过这个?更重要的是,我如何修复它以便我的构造函数停止消失?

我没有发布任何代码,因为这是一个普遍的问题,我不认为我的具体代码会帮助解决问题,但是如果你需要看到任何代码我会告诉我。

2 个答案:

答案 0 :(得分:6)

您通常不希望直接修改这些生成的类。这些课程可以在没有警告的情况下重建。我没有太多的经验,但我相信那些生成的类是partial类。完全创建一个新的.cs文件,使用相同的类名(包括partial关键字)并在那里添加构造函数。

答案 1 :(得分:0)

问题是您正在编辑生成的文件。 WPF使用partial类从GENERATED代码中分离您的代码。你可以创建'部分'你自己的类,虽然除了代码组织之外没有特别的用途。为了达到目的,只要类相同,您在partial类中编写的任何代码都可以在任何其他partial类文件中重写。因此,请重载构造函数并将其放入NON-GENERATED文件中。这将阻止生成器编辑您在该文件中所做的任何更改。如果代码有时在生成的partial文件中有效,那么如果将其放入非生成的partial文件中,它应该始终有效,因为代码不会被Visual更改。