在ASP.NET动态数据/ LINQ to SQL中启用主键字段的编辑

时间:2020-03-06 14:28:17  来源:igfitidea点击:

如果我们有一个包含由外键和其他表列组成的复合主键的表,那么如何获得ASP.NET动态数据以允许非外键的主键表列可编辑?

解决方案

LINQ to SQL即使不使用动态数据也不支持更改实体的主键。

主键代表实体的身份。假定永不更改主键字段。问题表明我们可能错误地使用了主键。

当前版本不完全支持复合或者复合外键。在构建测试项目时,我遇到了同样的问题。对于具有单列外键的父子关系,动态数据使我可以使用下拉菜单编辑子表中的记录。对于具有复合主键的父子关系,动态数据仅允许我编辑其中一个外键,而没有下拉菜单。我尝试了Linq to SQL和Data Entities。

主键仅必须是唯一的,并且不一定意味着它必须是自动生成的。这也不意味着它无法更改。

可以想象一个人可能会想出主键,在这种情况下,pk字段需要输入。