我在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();
我怎样才能做我想做的事?这可能吗?
答案 0 :(得分: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()
。