我有一个简单的NHiberntate linq查询:
var queryable = session.Linq<Product>().Where(p => p.Active);
Product[] products = queryable.ToArray();
执行ToArray()
时,会话变脏(session.IsDirty()
返回true
)。如果提交了事务,则会为每个产品生成一个UPDATE SQL查询。
为什么在简单的SQL SELECT之后将产品标记为脏?
在这个项目中,我们使用以下框架/工具:
答案 0 :(得分:3)
这个问题叫做“Ghost”
此测试将检测到此类问题: http://fabiomaulo.blogspot.com/2008/10/how-test-your-mappings-ghostbuster.html
这是我的改进,稍微冗长一点,因此它会为您提供更多信息: http://jfromaniello.blogspot.com/2010/02/nhibernate-ghostbuster-version-11.html