2011-01-26 7 views
1
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つの質問。私は '使う'を使うべきですか? LINQ to SQLはで私はDataContextを使用する場合、データベースへの接続が開始されますか?

答えて

0

、接続が開閉あなたがテーブルオブジェクトを照会するたび:

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

をそして、あなたが更新を行う際に開閉:

this.dataContext.SubmitChanges(); 

をあなたはしないでくださいLINQ to SQLは接続を管理するので、 'using'を使用する必要があります。 http://www.west-wind.com/weblog/posts/246222.aspxから

を明示的に使用 場合は、データを反復 ながらのDataContextと 接続が結ばれていないことを1 1への接続のみが公開されますあまりにも覚えておいてください(または接続は にCommandを指定するか、 DataReader()にストリーミングする)。一度あなたが終わりに達すると リストの接続を閉じる を自動的に閉じます。

関連する問題