gpt4 book ai didi

entity-framework-4 - 更新部分主键 Entity Framework 4.0

转载 作者:行者123 更新时间:2023-12-04 07:58:42 26 4
gpt4 key购买 nike

我有一个带有组合主键(3 列)的表:

UTP_ID (ITEMId)
UTS_ID (CategoryID)
USS_ID (SubCategoryID)

例如,当我尝试更改 SubCategory 时,使用 EF 4 时出现以下错误:
utl.USS_ID = Convert.ToInt32(ddlSubSetor.SelectedItem.Value);

the property is part of the object's key information and cannot be modified

任何想法?为什么我不能改变它?

最佳答案

EF 在主键属性值和对象引用之间实现身份映射。它不允许更改同一对象实例的键。

我会用直接 SQL 来做到这一点:

objectContext.ExecuteStoreCommand(
"UPDATE MyTable SET USS_ID = {0} WHERE UTP_ID = {1} AND UTS_ID = {2} AND USS_ID = {3}",
Convert.ToInt32(ddlSubSetor.SelectedItem.Value),
utl.UTP_ID, utl.UTS_ID, utl.USS_ID);

确保您的实体 utl与上下文分离,因为此代码直接写入数据库表,并且实体不会获得有关此更改的任何信息。但这避免了必须删除和重新创建实体(由于数据库中旧行上现有的外键约束,这可能是不可能的)。

关于entity-framework-4 - 更新部分主键 Entity Framework 4.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7800130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com