我创建了一个业务层,其中包含要在ASP.NET应用程序中使用的数据库模型。之前我在Windows窗体中使用过Linq To SQL类,但在每个请求的Web应用程序中使用ORM对我来说很陌生。我有一些我无法弄清楚的事情,如果有人给我任何见解,我会很感激。
我的BLL有静态方法,如GetRecord()或UpdateRecord()。这些方法中的每一个都创建一个新的ObjectContext实例,在工作单元后销毁。我没有任何HttpContext.Current.Items缓存实现。
我正在使用EF .NET 3.5。
我已经创建了一个预生成的视图(Model.View.cs)并将其添加到我的解决方案中。这就是我要用它吗?我还需要用我的dll发布csdl,msl和ssdl文件吗?
预编译查询对ASP.NET应用程序有害吗?我对任何ASPX页面只有一两个查询,很少在同一页面中使用两次选择查询。如果预编译我的查询,它会减慢应用程序的速度吗?我想知道会话A的预编译是否对会话B有用?
我已经创建了以下方法来更新ASP.NET页面中的记录,我想知道它是否是一个好方法:
ASP.NET使用BLL.GetRecord()获取记录(Entity)
更新任何值
将更新的记录发送到BLL.Update()
BLL.Update()检查记录是否存在
使用context.ApplyPropertyChanges()更新记录
我已经更新了一些实体框架性能图表,并且在每个图表中都有两种不同的查询统计信息:第一次运行和第二次运行。由于我使用工作单元类型的设计,我的查询是否永远不会看到第二次运行?
感谢。
答案 0 :(得分:1)