我是Entity Framework 7的新手,我想获得编辑多对多关系表的权限。在Fluent API中,我有一些类似以下的代码:
modelBuilder.Entity<AB>().HasKey(x => new { x.AId, x.BId });
...
public DbSet<AB> ABs { get; set; }
主键是匿名类型。但是我希望能够通过主键搜索我的
AB
实体。我可以将匿名PK类型更改为特定类型吗? 最佳答案
我可以将匿名PK类型更改为特定类型吗?
不,你不能。 HasKey
方法的作用是配置PK的顺序,只不过,在您的实体中PK属性将保留为简单属性,而不是匿名类型。因此,您可以使用Find
方法搜索特定实体,如下所示:
int aid=1;
int bid=2;
// pass the key values in the same order you define in the HasKey method
var entity= dbcontext.ABs.Find(aid,bid);
//Or
var entity= dbcontext.ABs.FirstOrDefault(ab=>ab.AId==aid && ab.BId==bid);
更新资料
好吧,现在我正在阅读
Find
方法仍不受支持,但是您可以在此post中找到一个实现。关于c# - 如何使用Entity Framework将DbContext添加到具有复合主键的实体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36606097/