Получить объект из LINQ-to-SQL DataContext перед SubmitChanges - PullRequest
3 голосов
/ 01 мая 2009

Я вставляю новый объект в 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 голос
/ 01 мая 2009

Попробуйте:

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().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...