Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架添加时忽略属性_C#_Entity Framework - Fatal编程技术网

C# 实体框架添加时忽略属性

C# 实体框架添加时忽略属性,c#,entity-framework,C#,Entity Framework,以下是我的代码的相关部分: public partial class Users { public string Name { get; set; } public Guid RoleId { get; set; } public virtual Role UserRole {get; set; } } public partial class Role { public string RoleName {get; set; } public Guid RoleI

以下是我的代码的相关部分:

public partial class Users
{
   public string Name { get; set; }
   public Guid RoleId { get; set; }
   public virtual Role UserRole {get; set; }
}

public partial class Role
{
   public string RoleName {get; set; }
   public Guid RoleId {get; set; }
}
RoleId是Roles表中的主键,该表包含RoleName和RoleId。用户有Name和RoleId

设置用户后,我尝试添加它们

this.Entities.Users.Add(user);
this.Entities.SaveChanges();
但是,我在Roles表中得到了一个DbUpdateException,其类型为PRIMARY KEY冲突。据我所见,它试图插入附加到用户的角色,这显然会导致该问题

我尝试在UserRole上添加[NotMapped]属性,但这并没有解决问题

EF生成了这两个类

我是否需要进行某种模式更改,使其不包括UserRole和refactor,以便在用户中使用RoleId并以这种方式引用所有内容,或者我还缺少其他内容


编辑:做了一个浅层复制,获取了所需的信息,现在可以使用了。

您可以在EF类设计器的工具窗口中取消映射属性。

如果在保存更改之前将UserRole设置为null,会发生什么情况?您能显示“设置用户”的代码吗?@SuperNES将UserRole设置为null会导致InvalidOperationException,因为一个或多个外键属性不可为null。为什么Entity Framework会将现有对象重新插入我的数据库?msdn.microsoft.com/en-us/magazine/dn166926.aspx