5

エンティティがデータベースに既に追加されているかどうかを確認したいと思います。では、この と の違いをどのように確認できaますbか?

var a = dataContext.Things.First(x => x.Name == something);
var b = new Thing { Name = something };

明確にするために、これがある場合:

var thing = dataContext.Things.FirstOrDefault(x => x.Name == something) 
            ?? new Thing { Name = something };

thing挿入する必要があるかどうかを確認するにはどうすればよいですか?

4

1 に答える 1

4

FirstOrDefaultの代わりに使用すると、一致がない場合にFirst返されます。null

挿入する必要があるかどうかについては、最初に null であったかどうかを覚えておいてください。

var a = dataContext.Things.FirstOrDefault(x => x.Name == something);
bool needsInsertion = (a == null);
a = a ?? new Thing { Name = something }; 

または、データベースによって自動的に入力される ID フィールドがある場合Thingは、それを使用して、データベースに既に存在するかどうかを検出できます。

于 2009-06-02T08:19:23.543 に答える