EF6を使用して、Find(key1.a, key1.b)
メソッドを使用して複合主キーでエンティティを取得できます。EF複合キーの配列で検索
また、私はEFは、キーによる検索のための二つの方法がある理由を知りたい:
は、それは、複数のキーのためにすなわち
var keys = new [] {new {a = 1, b = 2}, new {a = 2, b = 3}, /*etc*/};
var entities = context.Items.Find(key1.a, key1.b, key2.a, key2.b, ..., keyN.a, keyN.b);
UPDを同じことを行うことは可能ですFind
をし、 LINQのWhere
、Single
など
のための拡張メソッドを書くことができます。 DbSet .Findメソッドは文書化されており、単一のエンティティのみを返します –
@SirRufo:固定、ありがとうございます。そのときの回避策を知りたいと思います。 –
いくつかのRDBMはタプル(化合物の主キーなど)を[like this](https://stackoverflow.com/a/8011075/314291)という構文で 'IN'にすることができます。しかし、[あまりにもSqlServer](https://connect.microsoft.com/SQLServer/feedback/details/299231/add-support-for-ansi-standard-rowvalue-constructors)。 '(KeyCol1 = Value1 AND KeyCol2 = Value2)OR(KeyCol1 = ..)' – StuartLC