如果我有一个没有 EnabledDelete、EnabledUpdate、EnabledInsert 的 LinqDataSource,它可以正常工作,但是一旦我将这些属性添加到数据源,我就会收到错误消息:
没有为此对象定义无参数构造函数。
如果我有一个没有 EnabledDelete、EnabledUpdate、EnabledInsert 的 LinqDataSource,它可以正常工作,但是一旦我将这些属性添加到数据源,我就会收到错误消息:
没有为此对象定义无参数构造函数。
如错误所示,您需要为该类提供一个无参数构造函数。
public class MyClass
{
public MyClass()
{
// This is the parameterless constructor
}
// rest of the class members goes here.
}
当需要自动创建类的实例时,系统需要一个无参数的构造函数。它无法确定其他构造函数的参数含义,因此它取决于此构造函数。
即使您的构造函数什么都不做,它仍然可以工作,尽管您可能希望它为您的类属性提供有用的默认值。
LinqDataSource 需要 DataContext 上的默认构造函数。如果您在 Web 应用程序或网站项目中工作,当您将表从数据库拖到设计图面上时,Linq to SQL 设计器应该已经为您创建了默认构造函数和连接字符串。
您是否创建了 DataContext 并将表格从 web 应用程序或网站项目拖到设计图面上?打开生成的 Lib.NorthwindDataContext 类,看看它是否有默认构造函数。
如果你真的想要,你也可以通过处理 ContextCreating 事件并提供你自己的上下文实例来使用没有默认构造函数的 LinqDataSource。