Когда начинается подключение к базе данных, если я использую DataContext? - PullRequest
1 голос
/ 26 января 2011
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 голосов
/ 26 января 2011

В Linq to SQL соединение открывается и закрывается при каждом запросе объекта таблицы:

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

И открывается и закрывается при обновлении:

this.dataContext.SubmitChanges();

Youне нужно использовать 'using', поскольку LINQ to SQL будет управлять соединением.

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

Имейте также в виду, что DataContext и Connections не привязаны 1 к 1. Соединения будут открыты, только когда вы перебираете данные (или если вы явно используете Соединение, предоставляемое с Командой, или потоковую передачу в DataReader)).Как только вы достигнете конца списка, соединения автоматически закроются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...