【发布时间】:2020-01-07 10:23:07
【问题描述】:
我正在尝试使用来自查询的实体创建一个与现有用户相关的新角色。我从 db 得到一个实体;
var user = GetAll()
.Include(s => s.User)
.ThenInclude(a => a.Role)
.FirstOrDefaultAsync(s => s.Id == userId);//at this point role state is unchanged when i try to update its fields context thinks it is modified.
当我尝试这样做时,我得到一个错误;
var roleEntry = Context.Entry<Role>(user.Role);
roleEntry.State = EntityState.Added;
user.RoleSetId = null;
user.Role.Id = 0;
user.Role.OrganizationId = 5;//other properties of role remains same as db with other navigation properties
Context.SaveChanges();
实体框架核心 2.2.4
错误;
实体类型“角色”上的属性“角色 ID”是键的一部分,因此不能修改或标记为已修改。要使用标识外键更改现有实体的主体,首先删除依赖项并调用“SaveChanges”,然后将依赖项与新主体关联。
【问题讨论】:
-
您使用的是哪个版本的实体框架。你面临什么错误?你也可以发布错误消息吗??
-
@ZulqarnainJalil 问题已根据您的评论更新。