实体框架核心查找和复合键

时间:2017-12-23 02:19:40

标签: c# entity-framework-core

Find()方法接受一个对象数组,描述您尝试查找的主键。有关如何处理复合主键的文档不清楚。我尝试搜索github存储库,但无法找到Finder.Find()方法的源代码。

例如,我使用了流畅的API来定义以下复合主键:

modelBuilder.Entity<Article>()
    .HasKey( x => new { x.CommunityID, x.ArticleID } );

我是否像这样调用Find():

Find( new object[] {1, 2} );

或者像这样:

Find( new object[] { new {CommunityID = 1, ArticleID = 2} } );

如果是第一种方法,那么参数的顺序是否与Fluent API匿名对象上定义的属性顺序相同?

1 个答案:

答案 0 :(得分:9)

查找的签名为:params object[] keyValues

无需传入数组,只需单独输入每个键:

.Find(1, 2);
  

如果它是第一种方法,那么参数的顺序是相同的   在流畅的API匿名对象上定义的属性的顺序?

是的,您需要按照流利的API地图中定义的顺序传入PK。