在SubmitChanges之前从LINQ-to-SQL DataContext检索对象

时间:2009-05-01 07:38:26

标签: .net linq-to-sql

我在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 个答案:

答案 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()