在更新获取错误期间:
Violation of UNIQUE KEY constraint 'IX_UniqueClientRequest'. Cannot insert duplicate key in object 'dbo.ClientRequest'. The duplicate key value is (0067f654-a06a-47c1-a13d-d5f35530c11b, -1).
声明已经终止。
这是我正在使用的代码:
public class ClientRequestData
{
public Guid Id { get; set; }
public ClientData Client { get; set; }
}
public class ClientRequestDataConfig : EntityTypeConfiguration<ClientRequestData>
{
public ClientRequestDataConfig()
{
ToTable("ClientRequest");
HasRequired(r => r.Client)
.WithMany(c => c.ClientRequests)
.Map(m => m.MapKey("IdClient"))
.WillCascadeOnDelete(false);
}
}
public void Save(ClientRequestData request)
{
using (DbContext context = new DbContext())
{
request.Client = context.Clients.FirstOrDefault(c => c.Id == request.Client.Id);
//Insert
if (request.Id == Guid.Empty)
{
request.Id = Guid.NewGuid();
context.ClientRequests.Add(request);
}
//Update
else
{
ClientRequestData dbRequest = context.ClientRequests.FirstOrDefault(cr => cr.Id == request.Id);
dbRequest.Client = request.Client;
}
context.SaveChanges();
}
}
如何更改客户端实体状态,因此仅更新引用,而不是尝试创建新客户端?
答案 0 :(得分:0)