2017-04-18 86 views
1

我正在使用asp.net核心MVC模式的APP的服務器程序。而在XXXXcontrller我從不使用像「Connection.open()」和「Connection.close()」的代碼,HTTP GET操作就像這樣。如何管理asp.net核心MVC模式下的SQL Server連接?

public async Task<IActionResult> register(string phoneNum, string password, string userType) 
    { 
     //從數據庫裏找到m.Id和 id相同的車,賦給dbCars 
     var dbCars = await _context.dbUsers.SingleOrDefaultAsync(m => m.UserName == phoneNum); 
     // var dbCars= _context.dbCars.Where(s => s.Id == id).FirstOrDefault<dbCars>(); 
     if (dbCars == null)//如果爲空,則註冊 
     { 
      //註冊新用戶 
      dbCars = new dbUsers(); 
      dbCars.UserName = phoneNum; 
      dbCars.Password = password; 
      dbCars.UserType = userType; 
      dbCars.IsVerified = true; 
      _context.Add(dbCars); 
      await _context.SaveChangesAsync(); 

      //註冊完成之後,把ID、用戶類型和是否認證返回回去 
      List<string> userInfo = new List<string>(); 
      userInfo.Add(dbCars.Id.ToString().Trim()); 
      userInfo.Add(dbCars.UserType.ToString().Trim()); 
      userInfo.Add(dbCars.IsVerified.ToString()); 
      string json = JsonConvert.SerializeObject(userInfo); 
      return Ok(json); 
     } 
     else //如果不爲空就代表註冊過了 
     { 
      return Ok("0"); //返回1代表註冊過了 
     } 
    } 

我想知道當許多用戶訪問此服務時應該如何維護SQL連接?我應該手動關閉這些連接嗎?或者它可以通過一些魔法自動完成?如果許多用戶訪問此服務,請將我的程序分解?

我很困惑,誰能給我一個答案?

+0

我認爲你使用的是實體框架。在EF打開和關閉中,連接是由它自己管理的,所以你不需要爲此煩惱。 –

+0

是的,它是Entity Framework。那麼,有多少用戶可以訪問我的服務器取決於什麼?在IIS設置?在SQL SERVER設置?這與我的服務器無關?這裏是我的連接字符串「」DefaultConnection「:」數據源=本地;數據庫= Nxts; Trusted_Connection =真; MultipleActiveResultSets =真「」 –

回答

0

如果您使用實體框架或ORM,您應該在web.config上看到並設置連接字符串,或者如果它位於單獨的圖層上,則可以在app.config上看到設置。如果你運行應用程序,它將使用應用程序連接字符串app.config(windows應用程序)或web.config(web應用程序)的啓動項目

+0

是的,連接字符串是好的,我的應用程序可以運行。我只是想知道我應該控制連接(打開和關閉)以及如何?或者我應該把它留在後面。 –