2011-05-19 26 views
1

我创建了一个名为EF的ADO.NET模型,并添加了一个DbContext生成器,该生成器用EF.tt和.cs文件填充我的/ Model文件夹,每个实体一个。ADO.NET无法生成无参数构造函数

一般来说,系统会创建具有无参数构造函数的类...由于某些原因,我无法理解我有一个实体缺少这个构造函数。它不是一个抽象类,没有基类型并且具有公共访问权限。我有很多其他类,但它们都有无参数的构造函数。我用google搜索了一下,看看周围VS试图找出这个特别的东西,以及如何让它生成构造函数,但找不到答案。

我总是可以在部分的定义中创建这个,但我宁愿弄明白。另外,如果我在EF.tt上右键单击,我会在名为“运行自定义工具”的菜单中看到一个选项,但是当我选择它时似乎没有任何事情发生。如何重新生成.cs文件?

p.s.是的,我已经清理并重建了解决方案,以防万一它出现混乱但仍然存在问题

回答

3

在C#(您正在使用C#):

  • 当你定义没有构造你们班,一个无参数的构造函数会被编译器创建默认
  • 当你定义参数的构造函数(也许其他一些)无参数的构造函数也会按照你的定义存在
  • 当你定义多于零的构造函数但没有无参数的构造函数时,编译器不会为创建一个无参数的构造函数ü。在这种情况下,您有责任对其进行定义(在部分课堂中)。
+0

是C#,并解释它。完善。非常感谢你们两位 – ekkis 2011-05-19 22:32:51

1

缺省构造函数默认存在,但不会生成。如果类没有任何明确定义的构造函数,它总是有默认的无参数构造函数。如果你在其他地方指定了任何构造函数(partial class),那么默认的无参数构造函数就不存在了,如果你想使用它(EF总是想使用它),你必须自己创建它。

+0

行动,几乎在同一时间发布。你也应该在这里提到这个语言,因为我确实相信创建的构造函数可能会因语言而异。 – 2011-05-19 22:26:24

相关问题