【发布时间】:2010-12-09 22:10:31
【问题描述】:
我在使用 EF4 时遇到问题,我试图验证对象是否已经在实体框架上下文中。
我下面有这段代码
var entityName = Entity4Test + Guid.NewGuid();
using( var ctx = new EnviroDataContext() )
{
var etc = new Entity
{
Name = entityName
};
ctx.Entity.AddObject( etc );
var q = from p in ctx.Entity
where p.Name == entityName
select p;
// Why 'q.ToList().Count == 0'?
ctx.SaveChanges();
}
我的问题是,为什么我插入后的搜索结果是空的?
我知道数据会在“SaveChanges”之后持久化,但如果我需要“查询”我的实体内存数据怎么办。
扩展问题
我有一个业务规则,通过添加 1 个项目 A,触发其他实体 B 的插入。 问题是,我有验证规则,在插入 B 时,t A 必须已经存在。
因为所有这些操作都是在“SaveChanges”之前进行的,所以我收到一个错误,即 EntityA 不存在。
其他情况,我有一个在表格中唯一的名称字段。 如果我尝试运行 AddEntityName("bla") 两次,然后运行 'SaveChanges',我会从 DB [唯一约束] 中得到一个异常,即使在通过插入验证之后,也可以保证名称是唯一的。
有人知道吗?
【问题讨论】:
标签: .net entity-framework entity-framework-4