2016-02-23 82 views
0

我有一個服務,我試圖添加新用戶。如果用戶已經exsists它不應該加,但我得到一個錯誤。「對象引用設置爲實例的對象」未將對象引用設置爲C中對象的實例#

[WebMethod] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public string AddUsers(UsersJSON UserJSON) 
    { 
     using (var context = new Data.DataEntities()) 
     { 
      var users = context.Users.Where(c => c.UserId == UserJson.UserId).FirstOrDefault(); 
      var newuser = new Users(); 
      { 
       if (users.UserId != UserJson.UserId)//error here 
       { 
        newuser.UserId = UserJson.UserId; 
        newuser.FirstName = UserJson.FirstName; 
        newuser.LastName = UserJson.LastName; 

       } 
      } 
      context.Users.Add(newuser); 
      context.SaveChanges(); 
      JavaScriptSerializer JSON = new JavaScriptSerializer(); 
      return JSON.Serialize(newuser); 
     } 
    } 
+0

@mason:說實話,這不是很有幫助。 –

+0

如果用戶不存在,您究竟如何測試?你甚至在做測試嗎? –

+0

你忘了一個非常重要的信息 - 拋出異常的地方在哪裏?你想如何修復一個錯誤,你不知道發生了什麼? –

回答

0

您正在使用.FirstOrDefault能可能返回null。所以你需要防範這一點。

var users = context.Erp_Users.Where(c => c.UserId == erpUserJson.UserId).FirstOrDefault(); 
var newuser = new Erp_Users(); 
{ 
    if (users != null && users.UserId != erpUserJson.UserId)//no error here 
    { 
     ... 
+0

如果我確實喜歡它在savechanges()後分手。 – vana

相關問題