C# 实体框架6.1,基于主键以外的唯一约束附着对象

C# 实体框架6.1,基于主键以外的唯一约束附着对象,c#,sql-server,entity-framework,entity-framework-6,jet.com-apis,C#,Sql Server,Entity Framework,Entity Framework 6,Jet.com Apis,我目前正在开发一个与jet.com API通信的模型,我遇到了实体框架的困难,这在开发EF数据模型从API获取数据时可能非常常见 所以jet.com API在大多数情况下都会返回唯一的键,但出于一些不同的原因,我不想将它们的键用作数据库中的主键,但我确实能够在实体框架中实现唯一约束,现在的问题是,当主键未设置或未找到时,是否有任何方法可以在attetch方法上实现某种覆盖,以基于唯一键对实体进行attech 我假设我可能可以编写一个扩展方法来处理这个问题,但我只是不想重新发明轮子 我正在考虑为唯

我目前正在开发一个与jet.com API通信的模型,我遇到了实体框架的困难,这在开发EF数据模型从API获取数据时可能非常常见

所以jet.com API在大多数情况下都会返回唯一的键,但出于一些不同的原因,我不想将它们的键用作数据库中的主键,但我确实能够在实体框架中实现唯一约束,现在的问题是,当主键未设置或未找到时,是否有任何方法可以在attetch方法上实现某种覆盖,以基于唯一键对实体进行attech

我假设我可能可以编写一个扩展方法来处理这个问题,但我只是不想重新发明轮子


我正在考虑为唯一的密钥冲突实现某种异常处理程序的可能性,但到目前为止,我还没有完全弄清楚…

我不确定这是否是您要寻找的,但您可以通过以下代码在EF6+中映射主键:

modelBuilder.Entity<OfficeAssignment>().HasKey(t => t.InstructorID);

我不完全理解您在寻找什么,为什么不简单地用您自己的约束集查询您的上下文,然后更新返回的对象呢。没有真正的理由覆盖附加,只要使用FirstOrDefault(如果发现更新),否则插入新的