在提交更改之前从LINQ-to-SQL DataContext检索对象

3

我在LINQ-to-SQL DataContext中插入了一个新的对象,但尚未调用SubmitChanges():

MyDataContext db = new MyDataContext();
MyObject newObject = new MyObject() 
{
   Id = 1,
   Name = "MyName"
};
db.MyObjects.InsertOnSubmit(newObject);

现在,在我的代码的另一个位置,我想检索此新对象,即使它尚未存储在数据库中。因此,我传递相同的DataContext实例,因为我相信新对象已缓存在其中。现在,我想检索它。但这样做不起作用:

MyObject newObject = db.MyObjects.Where(o => o.Id == 1).SingleOrDefault();

我想知道如何做我想做的事情,这可能吗?

1个回答

1

尝试:

db.MyObjects.SingleOrDefault(o => o.Id == 1);

你可能认为这是相同的,但请看这两个连接问题:

如果这样不行,我知道.Single(o => o.Id == 1)在3.5 SP1中可以工作(我不知道是否尝试过.SingleOrDefault(pred))。显然,.Where(o => o.Id == 1).Single()在4.0中已经修复 - 再次说明,我没有尝试过.Where(pred).SingleOrDefault()


我添加了“连接”问题,解释了为什么可能会不同。 - Marc Gravell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接