【发布时间】:2011-07-09 19:47:07
【问题描述】:
这里刚开始使用 LINQ2SQL,我有几个问题。
我有一个带有单个表 Customer 的 db,我运行 sqlmetal,它为我生成了一个 ORM 类。
我想在 Customer 的构造函数中应用某些规则,可能类似于 必须提供 Customer 的 firstName、lastName 成员。
我在 sqlmetal 生成的 Customer 类中创建了一个新的构造函数来 取2个参数firstName,secondName然后标注默认无参数 构造函数是内部的,因为我不想将它暴露给任何消耗它的东西 组装。
当我尝试 SubmitChanges() 时,我的代码开始抱怨,因为无参数构造函数从公共到内部的新保护级别。
List<Customer> customerList = new List<Customer>();
customerList = dbInstance.Customer.ToList();
Customer customerToDelete = customerList.Where(c => c.Customer_id == 100).First();
dbInstance.Customer.DeleteOnSubmit(customerToDelete);
dbInstance.SubmitChanges(); <-- error thrown
“没有为此对象定义无参数构造函数”
为什么访问修饰符必须在 Customer ORM 类的默认构造函数中公开?当它公开时,它会按预期工作。
【问题讨论】:
-
有趣的是,如果它需要它来实现对象,我不会感到惊讶。奇怪的是它需要提交它们。
标签: c# linq-to-sql