2017-07-17 56 views
-1

我正在使用實體框架和asp.net web API。我想使下面的方法異步,但我不知道在下面的代碼中使用await的位置。如何在asp.net中使用await webapi post方法

[HttpPost] 
public async Task<IHttpActionResult> CreateAccount([FromUri]string fullname, string email, string cnic,string username,string password, string logrol) 
{ 

    using (var entity = new Smock_DBEntities()) 
    { 
     Person pr = new Person(); 
     pr.Full_Name = fullname; 
     pr.Email = email; 
     pr.CNIC = cnic; 
     entity.Persons.Add(pr); 
     entity.SaveChanges(); 
     int prID = entity.Persons.Where(per => per.CNIC == cnic).Select(per => per.Person_ID).First(); 

     Login log = new Login(); 
     log.Person_ID = prID; 
     log.Username = username; 
     log.Password = password; 
     log.Login_Role = logrol; 
     entity.Logins.Add(log); 
     entity.SaveChanges(); 

     return Ok(); 
    }   
} 
+1

'等待entity.SaveChangesAsync();' – tymeJV

+1

和'INT PRID =等待entity.Persons.Where(....)選擇(每=> per.Person_ID).FirstAsync();'太:) – CodeNotFound

+1

[如何以及何時使用\'async \'和\'await \']可能重複(https://stackoverflow.com/questions/14455293/how-and-when-to-use-async-and -等待) – Igor

回答

1

把它作爲一個可能的地方(3個地方)的答案,你可以放在你的代碼片段等待。

[HttpPost] 
public async Task<IHttpActionResult> CreateAccount([FromUri]string fullname, string email, string cnic,string username,string password, string logrol) 
{ 

    using (var entity = new Smock_DBEntities()) 
    { 
     Person pr = new Person(); 
     pr.Full_Name = fullname; 
     pr.Email = email; 
     pr.CNIC = cnic; 
     entity.Persons.Add(pr); 
     await entity.SaveChangesAsync(); 
     int prID = await entity.Persons.Where(per => per.CNIC == cnic).Select(per => per.Person_ID).FirstAsync(); 

     Login log = new Login(); 
     log.Person_ID = prID; 
     log.Username = username; 
     log.Password = password; 
     log.Login_Role = logrol; 
     entity.Logins.Add(log); 
     await entity.SaveChangesAsync(); 

     return Ok(); 
    }   
} 
相關問題