Asp.net mvc ASP.NET MVC实体框架-访问参数模型上的导航属性
我使用的是ASP.NET WebAPI,在我的控制器中有一个名为Asp.net mvc ASP.NET MVC实体框架-访问参数模型上的导航属性,asp.net-mvc,entity-framework,model,asp.net-web-api,navigation-properties,Asp.net Mvc,Entity Framework,Model,Asp.net Web Api,Navigation Properties,我使用的是ASP.NET WebAPI,在我的控制器中有一个名为PostAddToGroup的方法,使用参数int-id和Group-Group。在我的组实体上,我有一个名为成员的导航属性 我想做的是这样的事情 public HttpResponseMessage PostAddToGroup(int id, Group group) { group.Members.Add(id); db.SaveChanges(); } 而不是 Group _group = db.Group
PostAddToGroup
的方法,使用参数int-id
和Group-Group
。在我的组
实体上,我有一个名为成员
的导航属性
我想做的是这样的事情
public HttpResponseMessage PostAddToGroup(int id, Group group) {
group.Members.Add(id);
db.SaveChanges();
}
而不是
Group _group = db.Groups.Include(x => x.Members).Single(x =>
x.PosterID == group.PosterID && x.Type == group.Type);
_group.Members.Add(id);
db.SaveChanges();
这有可能吗?如果没有,还有更好的方法吗?没关系,我自己想出来。我所要做的就是将模型攻击到DbContext,如下所示:
db.Groups.Attach(group.Members.Add(id)代码>我看不出这里有什么问题……PostAddToGroup函数不起作用?group对象有效吗?它可以工作,但效率相当低,就像我使用纯SQL一样,在更新它之前,我不需要获取组
行。我宁愿避免进行不必要的数据库调用。我很困惑,group\u group=db.Groups.Find(group.PosterID,group.type)中的group
变量是什么类型的代码>?与第一个代码段中的组
相同,我只是没有重新编写方法签名。可能我完全弄错了,但第二个代码段可以简化为这样:组.Members.Add(id);db.SaveChanges()代码>否?