2014-10-07 128 views
0

我正在創建一個MVC 2網站。我是初學者。我創建了一個使用EF的模型。關係在用戶表和產品表(一對多關係)之間。我能夠創建新用戶並使用linq將它們保存在數據庫中。我的問題是如何將產品添加到現有用戶。我從下面的代碼開始,但它不起作用。 Intellisense沒有看到querryuser.Product我的代碼有什麼問題,或者正確的方法是什麼。如果有人能幫助我,這將是偉大的如何將實體添加到現有實體MVC 2 EF

public void Insert(Product obj) 
    { 
     if (HttpContext.Current.Session["userid"] != null) 
     { 
      string userid2 = HttpContext.Current.Session["userid"].ToString(); 

      var queryuser = from p in entities.Users 
          where p.UserID == userid2 
          select p; 

      queryuser.Product.Add(obj); 
      entities.Users.Add(queryuser); 
      entities.SaveChanges(); 

     }               
    } 

我從我的控制器調用此方法。

+0

假設'UserID'是主鍵,你想'VAR queryuser = entities.Users.Find(userid2)' – Jonesopolis 2014-10-07 15:35:43

+0

其捐贈我的錯誤:System.Data.Objects.ObjectSet 沒有包含'Find'的定義,也沒有包含擴展方法'Find'的定義... – CodeEngine 2014-10-07 15:44:33

+0

您定義'entities'的文章 – Jonesopolis 2014-10-07 15:51:57

回答

1

queryuser是一個IQueryable,你把它當作一個單獨的對象來對待。

你可以嘗試更換:

queryuser.Product.Add(obj); 
entities.Users.Add(queryuser); 

user = queryuser.First(); 
user.Product.Add(obj); 
entities.Users.Add(user); 
+0

它給了我一個錯誤:System.Linq.IQueryable 不包含'ForEach'的定義... – CodeEngine 2014-10-07 15:41:41

+0

@ omachu23 - 是的,我忘了它返回一個IQueryable和不是IEnumerable--我正在更新答案 – antlersoft 2014-10-07 15:46:40

+0

我不明白爲什麼它沒有工作。我試過這個:var firstuser = entities.Users.First(); firstuser.Products.Add(obj); entities.SaveChanges();它的工作,但這不是我想要的。任何想法 – CodeEngine 2014-10-07 17:07:15

相關問題