Jon*_*nes 3 c# linq linq-to-sql
我阅读了Rick Strahl 关于如何处理数据上下文的文章.我的DBML在一个类库中,我通过在库中单独的自定义部分类中创建一个静态Current方法来保持我的数据上下文打开.
public partial class DataContext
{
public static DataContext Current
{
get
{
DataContext dc = HttpContext.Current.Items["dc"] as DataContext;
if (dc == null)
{
dc = new ImmediacyPageDataContext();
HttpContext.Current.Items["dc"] = dc;
}
return dc;
}
}
Run Code Online (Sandbox Code Playgroud)
然后像这样访问它
DataContext dc = DataContext.Current;
Run Code Online (Sandbox Code Playgroud)
但是,每当我更新我的DBML文件时,这都会导致问题.在我尝试构建项目时编辑DBML文件后,我的设计器文件不会重新生成/被删除.如果我尝试运行自定义工具选项,则会返回错误.
我可以解决这个问题的唯一方法是重命名或删除自定义部分类,重新生成设计器文件,然后将我的自定义部分类添加回解决方案.这是一项工作,但是......它有点痛苦.
有没有更好的方法,这将使编辑我的DBML文件更容易,同时尽可能长时间延长我的DC?
使用部分DataContext类进入代码文件,并将using语句移动到命名空间中.出于某种原因,除非是这种情况,否则该工具不会生成设计器.
namespace MyNamespace
{
using System;
using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Reflection;
using System.Xml.Linq;
partial class DataContext
{
}
}
Run Code Online (Sandbox Code Playgroud)
我相信从VS2008迁移到VS2008 SP1时需要进行此更改,但我可能会混合使用某些版本.
| 归档时间: |
|
| 查看次数: |
1669 次 |
| 最近记录: |