2017-04-18 91 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

是的,连接字符串是好的,我的应用程序可以运行。我只是想知道我应该控制连接(打开和关闭)以及如何?或者我应该把它留在后面。 –