【发布时间】:2009-07-27 12:43:57
【问题描述】:
我有一个网络应用程序,我在其中使用 linq 到业务实体我有业务数据模型。
问题是:
我有一列不允许空值的表,当我尝试更新此表时出现以下错误: 错误 'e.g Carrier' 属性是对象关键信息的一部分,不能修改
我能做什么?
【问题讨论】:
我有一个网络应用程序,我在其中使用 linq 到业务实体我有业务数据模型。
问题是:
我有一列不允许空值的表,当我尝试更新此表时出现以下错误: 错误 'e.g Carrier' 属性是对象关键信息的一部分,不能修改
我能做什么?
【问题讨论】:
最简单的做法是在具有唯一键(例如 guid)的表中添加第二列,并在与其对应的实体上创建一个只读属性。
Linq to business entites 需要某种密钥来跟踪数据库中要更新的内容。通常这是数据库表的主键。如果您没有主键,则它无法可靠地更新数据库,然后会向您发送异常。
此外,如果表 linq 上没有明确设置主键,则业务实体将选择其中一列(认为它是表中的第一列,但我可能错了)作为主键,因此不会允许你更新它。
【讨论】: