首先,在LINQTOSQL中可以这样建立一个dbcontext
private TEntity GetOriginal(TEntity entity)
{
using (Entity.EEE114.LinqEEE114DataContext context = new Entity.EEE114.LinqEEE114DataContext())
{
var table = context.GetTable<TEntity>();
return table.FirstOrDefault(e => e == entity);
}
}
这种写法缺陷就是每次在重新托数据库时,它就会自动生成一个连接串,它的连接串保存在properies目录的settings.settings文件中,当我们从一个本地服务器
发布到公网服务器时,就会出现问题,因为如果你没有指定“连接串”,它就会用这个settings.settings里的连接串,所以,我们为了扩展性好,还是把链接串
习惯上定义在web.config里,然后在建立 dbcontext对象时,可以这样写
private TEntity GetOriginal(TEntity entity)
{
using (Entity.EEE114.LinqEEE114DataContext context = new Entity.EEE114.LinqEEE114DataContext(System.Configuration.ConfigurationManager.ConnectionStrings["db"].ToString()))
{
var table = context.GetTable<TEntity>();
return table.FirstOrDefault(e => e == entity);
}
}
private TEntity GetOriginal(TEntity entity)
{
using (Entity.EEE114.LinqEEE114DataContext context = new Entity.EEE114.LinqEEE114DataContext())
{
var table = context.GetTable<TEntity>();
return table.FirstOrDefault(e => e == entity);
}
}
这种写法缺陷就是每次在重新托数据库时,它就会自动生成一个连接串,它的连接串保存在properies目录的settings.settings文件中,当我们从一个本地服务器
发布到公网服务器时,就会出现问题,因为如果你没有指定“连接串”,它就会用这个settings.settings里的连接串,所以,我们为了扩展性好,还是把链接串
习惯上定义在web.config里,然后在建立 dbcontext对象时,可以这样写
private TEntity GetOriginal(TEntity entity)
{
using (Entity.EEE114.LinqEEE114DataContext context = new Entity.EEE114.LinqEEE114DataContext(System.Configuration.ConfigurationManager.ConnectionStrings["db"].ToString()))
{
var table = context.GetTable<TEntity>();
return table.FirstOrDefault(e => e == entity);
}
}
以后在发布到公网后,只要修改web.config就可以了,呵呵。
本文转自博客园张占岭(仓储大叔)的博客,原文链接:LINQ TO SQL中还是用传统的连接串方式建立DbContext更好些,如需转载请自行联系原博主。