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