我是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/

10-13 09:37