ADO.NET无法生成无参数构造函数

时间:2011-05-19 22:14:24

标签: entity-framework asp.net-mvc-3 ado.net

我创建了一个名为EF的ADO.NET模型并添加了一个DbContext生成器,它使用EF.tt和.cs文件填充my / Model文件夹,每个实体一个。

一般来说,系统使用无参数构造函数创建类...由于某种原因我无法理解我有一个缺少此构造的实体。它不是一个抽象类,没有基类型并且具有公共访问权限。我有很多其他这样的类,但它们都有无参数构造函数。我用Google搜索并环顾了VS试图弄清楚这个有什么特别之处,以及如何让它生成构造函数,但是找不到答案。

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

P.S。是的,我已经清理并重建了解决方案,以防它搞砸了但仍然有问题

2 个答案:

答案 0 :(得分:3)

在C#中(您使用的是C#?):

  • 当您在类中定义 no constructor 时,默认情况下编译器将创建无参数构造函数
  • 当您定义无参数构造函数(可能还有其他一些)时,无参数构造函数也将在您定义时出现
  • 当您定义多个零构造函数但没有无参数构造函数时,编译器不会为您创建无参数构造函数。在这种情况下,您有责任定义它(在部分类中或不在部分类中)。

答案 1 :(得分:1)

默认情况下存在默认构造函数,不会生成它。如果类没有任何显式定义的构造函数,则它总是具有默认的无参数构造函数。如果你在别处指定任何构造函数(部分类),则默认无参数构造函数不再存在,如果你想使用它,你必须自己创建它(EF总是想要使用它)。