LinQ to SQL - InsertOnSubmit без SubmitChanges - PullRequest
0 голосов
/ 17 ноября 2018

Предположим, что я вставил сущность в набор сущностей, вызвав метод InsertOnSubmit , например:

DBDataContext db = new DBDataContext();
Product product = new Product {ID = "1" , Name = "Chair"};
db.Products.InsertOnSubmit(product);
// db.SubmitChanges();

Я не звонил SubmitChanges намеренно. У меня вопрос, могу ли я позже найти этот продукт и удалить его с помощью метода DeleteOnSubmit ?

Product product = db.Products.Single(p => p.ID == "1");
db.Products.DeleteOnSubmit(product);

Если я не могу, то что на самом деле делает метод InsertOnSubmit ?

Заранее благодарю за помощь.

1 Ответ

0 голосов
/ 19 ноября 2018

Метод InsertOnSubmit добавляет объект в список объектов, которые будут вставлены при вызове SubmitChanges.

Мой вопрос: могу ли я позже найти этот продукт и удалить его с помощью метода DeleteOnSubmit ?:

Вы не сможете найти объект, потому что он не существует в базе данных.

Обратите внимание, если вы пропустите поиск, т.е. если ваш код был

DBDataContext db = new DBDataContext();
Product product = new Product {ID = "1" , Name = "Chair"};
db.Products.InsertOnSubmit(product);
db.Products.DeleteOnSubmit(product);

Тогда это сработает, так как не подходит к базе данных.Команда DeleteOnSubmit удалит «product» из списка сущностей, которые будут вставлены при вызове SubmitChanges.

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