データベースにアクセスする前に検索するときに、ローカルで追跡されるエンティティを使用するEntityFrameworkでクエリを実行したいと思います。リポジトリ/データベースにデータを入力する複雑なルーチンを作成しましたが、Entity Frameworkを使用すると、すでに追加されているがまだ保存されていないエンティティは使用されません。したがって、このコードスニペットは、nを追加するのではなく、データベースに1つのカテゴリのみを追加する必要があります。
using (Db Db = new Db()) {
for (int i = 0; i < 10; i++) {
Category Category = Db.Categories.SingleOrDefault(x => x.Name == "Hello");
if (Category == null) {
Category = Db.Categories.Create();
Category.Name = "Hello";
Db.Categories.Add(Category);
Console.WriteLine("Adding item...");
}
}
}
どうすればこれを行うことができますか?最初にローカルコレクションをヒットするために使用しようとしたIQueryableからプロバイダーを変更できる抽象化があります。私は成功しませんでした。助けてください。