Объект из LINQ-to-SQL перед SubmitChanges - PullRequest
2 голосов
/ 18 января 2011

Я первоначально отправил это как ответ на этот вопрос , но понял, что я должен был задать новый.Похоже, я должен быть в состоянии сделать следующее:

int count = Db.Countries.Count();
Country newCountry = new Country{Name = "France"};
Db.Countries.InsertOnSubmit(c);
Country getCountry = Db.Countries.FirstOrDefault(x => x.Name == "France");
count = Db.Countries.Count();
Db.Countries.DeleteOnSubmit(c);
count = Db.Countries.Count();

Однако в пустой таблице count остается 0 на всем протяжении при входе в отладчик, а getCountry равно null после казни.

Чего мне не хватает?

1 Ответ

2 голосов
/ 18 января 2011

LINQ-to-SQL находится в этом мире между данными в базе данных и локальными объектами. На тот момент вы не отправили изменения в базу данных (Db.SubmitChanges()) - они существуют только локально.

Db.Countries.Count() выполняется в базе данных (т. Е. select COUNT(1) from Countries) - поэтому ответ равен 0.

Было бы безумно трудно (в общем случае) попытаться объединить локальные дельты с миром баз данных, так что вкратце: не делайте этого. Это не сработает.

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