我有一个winform-application并使用EF 4.2。我在EF 4.2中读到,实体查询的linq是自动编译的。 在调用查询时,我执行以下操作:
using (BVSEntities bvsContext = new BVSEntities(ConnectionString))
{
var person = (from sender in bvsContext.T_Absender
where sender.Absender_ID == id
select sender).First<T_Absender>();
return person;
}
问题: 1)此查询是自动编译的吗? 2)如果它是自动编译的。是否重用了编译的查询,因为bvsContext在使用后被释放? 3)如果没有,我如何重用它但不会出现任何并发问题?
答案 0 :(得分:1)
此查询是自动编译的吗?
否,因为EF 4.2不包含自动编译查询。假设EF 4.2将包含它们,但之后EF的命名约定已经改变。自动编译的查询是.NET 4.5的一部分。 EF 4.2只是EF 4.1,有一些修复。
是否重用了编译的查询,因为bvsContext在使用后被处理?
.NET 4.5包含用于自动编译查询的内部缓存以重用它们。