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();
}
连接星星时,当我调用这些函数时关闭?还有一个问题。我应该使用'使用'吗?
答案 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的())。一旦你到达终点 列表连接关闭 自动。