我想在使用 EF 检索数据的其他实例的数据库中添加一个新实体。我希望使用如下代码:
using (var db = new FundResearchContext(null))
{
var query = from a in db.As select new
{
a = a,
bs = (from b in db.Bs where b.AnId == a.AnotherId select b)
};
var listOfAsAndRelatedBs = query.ToList();
listOfAsAndRelatedBs[0].bs.Add(new B());
db.SaveChanges();
}
虽然bs
跟踪集合中的对象并保存对它们的更改,但我无法将新项目添加到集合中,因为它的类型是IQueryable
. 我意识到在这样一个简单的情况下,我可以将属性放在 A 和 B 上,以表明它们是通过外键链接的,但这种方法在我的现实生活场景中是不可能的。那么是否有另一种语法可以使bs
自己成为一个被跟踪的对象,我可以向其中添加新B
对象并使它们持久化?还是我必须手动使用db.Bs.Add(new B())
?