如何将实体添加到现有实体MVC 2 EF
我正在创建一个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();
}
}
我从我的控制器调用此方法。
queryuser
是一个IQueryable,你把它当作一个单独的对象来对待。
你可以尝试更换:
queryuser.Product.Add(obj);
entities.Users.Add(queryuser);
与
user = queryuser.First();
user.Product.Add(obj);
entities.Users.Add(user);
它给了我一个错误:System.Linq.IQueryable
@ omachu23 - 是的,我忘了它返回一个IQueryable和不是IEnumerable--我正在更新答案 – antlersoft 2014-10-07 15:46:40
我不明白为什么它没有工作。我试过这个:var firstuser = entities.Users.First(); firstuser.Products.Add(obj); entities.SaveChanges();它的工作,但这不是我想要的。任何想法 – CodeEngine 2014-10-07 17:07:15
假设'UserID'是主键,你想'VAR queryuser = entities.Users.Find(userid2)' – Jonesopolis 2014-10-07 15:35:43
其捐赠我的错误:System.Data.Objects.ObjectSet没有包含'Find'的定义,也没有包含扩展方法'Find'的定义... –
CodeEngine
2014-10-07 15:44:33
您定义'entities'的文章 – Jonesopolis 2014-10-07 15:51:57