【问题标题】:When the connection to database starts if i use DataContext?如果我使用 DataContext,何时开始连接数据库?
【发布时间】:2011-01-26 13:43:47
【问题描述】:
public class GetFromDatabase
{
    ExaminatorDataContext dataContext;

    public GetFromDatabase()
    {
        dataContext = new ExaminatorDataContext();
    }
 public void UpdateUserName(string login, string firstName, string lastName, string middleName)
    {
        var user = this.dataContext.Users.Where(u => u.Login == login).SingleOrDefault();
        user.FirstName = firstName;
        user.LastName = lastName;
        user.MiddleName = middleName;
        this.dataContext.SubmitChanges();
    }
public string GetUserRole(string login)
    {

        return (from user in this.dataContext.Users
                join role in this.dataContext.Roles on user.RoleId equals role.RoleId
                where user.Login == login
                select role.RoleName).SingleOrDefault();
}

当我调用这些函数时连接启动和关闭?还有一个问题。我应该使用“使用”吗?

【问题讨论】:

    标签: asp.net linq-to-sql


    【解决方案1】:

    在 Linq to SQL 中,每次查询表对象时都会打开和关闭连接:

    var user = this.dataContext.Users.Where(u => u.Login == login).SingleOrDefault();
    

    并在您进行更新时打开和关闭:

    this.dataContext.SubmitChanges();
    

    您不需要使用“使用”,因为 LINQ to SQL 将管理连接。

    来自http://www.west-wind.com/weblog/posts/246222.aspx

    请记住,DataContext 和 连接不是 1 对 1 的。 连接只会在 你迭代数据(或者如果你 明确使用提供的连接 使用命令或流式传输到 数据读取器())。一旦你到达终点 列表连接关闭 自动。

    【讨论】:

      猜你喜欢
      • 2010-11-28
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多