如果我使用DataContext连接到数据库?

时间:2011-01-26 13:43:47

标签: asp.net linq-to-sql

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();
}

连接星星时,当我调用这些函数时关闭?还有一个问题。我应该使用'使用'吗?

1 个答案:

答案 0 :(得分:0)

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

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

进行更新时打开和关闭:

this.dataContext.SubmitChanges();

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

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

  

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