我正在使用MVC C#和实体框架工作。
因此,在我的部分视图中,我想要更改数据。
这是我的控制器
public ActionResult BusinessDetails(){
int bsId = bskey ?? default(int);
var BusinessQuery = GetBusinessById(bsId);
var PeopleQuery = BusinessQuery.t_PEOPLE
.Where(p => p.PP_IS_CONTACT == true).AsEnumerable();
var peopleCollection = new EntityCollection<t_PEOPLE>();
foreach (var m in PeopleQuery)
{
//This is problem.-----------
peopleCollection.Add(m);
} //--------------
BusinessQuery.t_PEOPLE = peopleCollection;
return PartialView("_EditBusiness", BusinessQuery);
}
return RedirectToAction("Index");
}
public t_BUSINESS GetBusinessById(int id){
if (id == 0)
return null;
var query = from b in db.t_BUSINESS
where b.BS_KEY == id
select b;
var Business = query.FirstOrDefault();
return Business;
}
那么如何将PeopleQuery
分配给我的BusinessQuery.t_PEOPLE
。
Ther是错误并且说
The object could not be added to the EntityCollection or EntityReference. An object that is attached to an ObjectContext cannot be added to an EntityCollection or EntityReference that is not associated with a source object
答案 0 :(得分:2)
您可以直接查询您要查找的记录:
public ActionResult BusinessDetails()
{
int bsId = bskey ?? default(int);
var business = GetContactBusinessById(bsId);
return PartialView("_EditBusiness", business);
}
public t_BUSINESS GetContactBusinessById(int id)
{
if (id == 0)
{
return null;
}
var query =
from b in db.t_BUSINESS
from p in b.t_PEOPLE
where b.BS_KEY == id && p.PP_IS_CONTACT
select b;
return query.FirstOrDefault();
}
答案 1 :(得分:1)
试试这个
var PeopleQuery = BusinessQuery.t_PEOPLE.Where(p => p.PP_IS_CONTACT == true).ToList();