Asp.net mvc ASP.NET MVC实体框架-访问参数模型上的导航属性

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

我使用的是ASP.NET WebAPI,在我的控制器中有一个名为
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()否?