C# 实体框架代码优先:创建新用户后重复密钥
我有一个类,我首先插入Seed()方法来注册,用户已经有了一个组合框,里面填充了必要的和唯一的Caunties,然后他们的名字就是Id本身 重复密钥问题发生在我输入一个用户时,该用户反过来有一个地址,该地址有城市,该城市与县有关系,要插入(UserManager.CreateAsync()标准Asp.Net MVC设计方法,实现IdentityUser等),我会得到一个错误,因为我没有使用AddOrUpdate()它尝试用此键插入一个新的 我如何解决这个问题?我需要为这个模型设置始终为AddOrUpdate()C# 实体框架代码优先:创建新用户后重复密钥,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我有一个类,我首先插入Seed()方法来注册,用户已经有了一个组合框,里面填充了必要的和唯一的Caunties,然后他们的名字就是Id本身 重复密钥问题发生在我输入一个用户时,该用户反过来有一个地址,该地址有城市,该城市与县有关系,要插入(UserManager.CreateAsync()标准Asp.Net MVC设计方法,实现IdentityUser等),我会得到一个错误,因为我没有使用AddOrUpdate()它尝试用此键插入一个新的 我如何解决这个问题?我需要为这个模型设置始终为AddOr
AddOrUpdate()和Insert之间有什么区别?你指的是同样的方法吗?您所说的ID是什么意思?@KosalaW Insert将仅插入。AddOrUpdate检查是否有更新,否则插入新记录。这是代码重复。您只需要
AddOrUpdate
方法。“完全不需要插入。@KosalaW是的,这是我在问题中说的,我不能插入新的。但我不知道如何只发送更新县,因为县是一个城市属性,是一个由用户拥有的地址属性。@KosalaW再次看到问题,插入一个代码示例。”
public class ApplicationUser : IdentityUser
{
[Required]
public virtual Address Address { get; set; }
}
public class Address
{
[Required]
public virtual City City { get; set;}
}
public class City
{
[Required]
public virtual County County { get; set;}
}
public class County
{
[Key]
public string NameId { get; set;}
}