ASP.NET应用程序的实体框架注意事项

时间:2010-08-17 13:18:13

标签: asp.net entity-framework

我创建了一个业务层,其中包含要在ASP.NET应用程序中使用的数据库模型。之前我在Windows窗体中使用过Linq To SQL类,但在每个请求的Web应用程序中使用ORM对我来说很陌生。我有一些我无法弄清楚的事情,如果有人给我任何见解,我会很感激。

我的BLL有静态方法,如GetRecord()或UpdateRecord()。这些方法中的每一个都创建一个新的ObjectContext实例,在工作单元后销毁。我没有任何HttpContext.Current.Items缓存实现。

我正在使用EF .NET 3.5。

  1. 我已经创建了一个预生成的视图(Model.View.cs)并将其添加到我的解决方案中。这就是我要用它吗?我还需要用我的dll发布csdl,msl和ssdl文件吗?

  2. 预编译查询对ASP.NET应用程序有害吗?我对任何ASPX页面只有一两个查询,很少在同一页面中使用两次选择查询。如果预编译我的查询,它会减慢应用程序的速度吗?我想知道会话A的预编译是否对会话B有用?

  3. 我已经创建了以下方法来更新ASP.NET页面中的记录,我想知道它是否是一个好方法:

    ASP.NET使用BLL.GetRecord()获取记录(Entity) 更新任何值
    将更新的记录发送到BLL.Update()
    BLL.Update()检查记录是否存在 使用context.ApplyPropertyChanges()更新记录

  4. 我已经更新了一些实体框架性能图表,并且在每个图表中都有两种不同的查询统计信息:第一次运行和第二次运行。由于我使用工作单元类型的设计,我的查询是否永远不会看到第二次运行?

  5. 感谢。

1 个答案:

答案 0 :(得分:1)

  1. 您需要CSDL等作为文件或资源。查看预生成对性能有帮助,但并不能减轻您以某种形式包含EDMX的需要。
  2. 没有
  3. 好的,就这样。没有看到代码就很难说更多。
  4. 这取决于。 This post should help