Sey*_*avi 3 c# entity-framework
Person我有带有以下字段的表(以及实体数据模型中的实体) :
Name              Type
SocialID          String      
FirstName         String
LastName          String
这SocialID是主键。我想更新SocialID每条记录的值。但是,当我尝试在实体框架中更新此字段时,出现以下错误:  
The property 'SocialID' is part of the object's key information and cannot 
be modified.
我得到上述错误的代码是:
foreach (var p in Entity.Persons)
{
   p.SocialID= p.SocialID + "00";
   Entity.SaveChanges();
}
我怎样才能做到这一点?
正如其他人所提到的,你不能用代码来做到这一点。您必须在 SQL 中进行更新。在迁移中或直接在 SQL Server Management Studio 中(或者如果您使用不同的数据库,则在同等情况下)。
UPDATE Person -- Or 'Persons' if that's what your table is called
SET SocialID = SocialID + '00'
如果您有其他表使用此列作为外键,则需要做更多的工作(您必须首先删除引用主键的所有表上的约束,然后修复数据并重新创建限制)。或者正如 Moe 在评论中所说,您可以将外键设置为在更新时级联。
| 归档时间: | 
 | 
| 查看次数: | 11565 次 | 
| 最近记录: |