【发布时间】:2014-07-18 09:56:50
【问题描述】:
我想在 Entity Framework 中执行查询,这些查询在访问数据库之前进行搜索时使用本地跟踪的实体。我编写了一个复杂的例程来填充存储库/数据库,现在当我使用实体框架时,它不会使用已经添加但尚未保存的实体。因此,这段 sn-p 代码应该只向数据库添加一个 Category,而不是添加 n。
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 更改提供程序,我尝试使用它来首先访问 Local 集合。我没有成功。请帮忙。
【问题讨论】:
-
我很好奇。您打算如何查询尚未保存的实体?任何数据库生成的 id 都将为 0,因为它们尚未创建。所以没有身份。当然,您可以查询其他内容,但这似乎很老套且实践不佳。为什么不保留自己的项目集合并使用 linq to objects 来对付它?
标签: c# asp.net asp.net-mvc entity-framework