0

我有一个 winform 应用程序并使用 EF 4.2。我读到在 EF 4.2 中,linq to entity-queries 是自动编译的。调用查询时,我执行以下操作:

 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)如果没有,我怎样才能重用它但不会遇到任何并发问题?

4

1 回答 1

1

这个查询是自动编译的吗?

不,因为 EF 4.2 不包括自动编译的查询。原以为 EF 4.2 将包含它们,但之后 EF 的命名约定发生了变化。自动编译查询是 .NET 4.5 的一部分。EF 4.2 只是带有一些修复的 EF 4.1。

编译后的查询是否因为 bvsContext 在使用后被释放而被重用?

.NET 4.5 包含用于自动编译查询的内部缓存以重用它们。

于 2012-07-24T10:19:14.377 回答