Могу ли я проверить, является ли DataQtext Linq 2 SQL отслеживанием сущностей? - PullRequest
0 голосов
/ 06 ноября 2008

Мы хотим вызвать исключение, если пользователь вызывает DataContext.SubmitChanges () и DataContext ничего не отслеживает.

То есть ... нормально вызывать SubmitChanges, если нет вставок, обновлений или удалений. Но мы хотим убедиться, что разработчик не забыл присоединить сущность к DataContext.

Еще лучше ... возможно ли получить коллекцию всех сущностей, которые отслеживает DataContext (включая те, которые не изменены)?

PS: последний вопрос, который я задал , получил ответ: "сделай это вместо этого" ... пожалуйста, не надо: -)

Ответы [ 3 ]

1 голос
/ 06 ноября 2008

Я не думаю, что есть какие-либо публичные / защищенные методы, которые позволили бы вам получить это напрямую. Вам, вероятно, придется использовать рефлексию, как я сделал около 3 сообщений здесь , просматривая свойство ChangeTracker Services. Боюсь, очень некрасиво.

0 голосов
/ 10 апреля 2009

Я, если я правильно понял вопрос ...

Они показывают, что отслеживает DataContext

DataContext.GetChangeSet().Inserts;
DataContext.GetChangeSet().Deletes;
DataContext.GetChangeSet().Updates;

Это то, что ты думаешь?

if (DataContext.GetChageSet().Inserts.Count = 0
        && DataContext.GetChageSet().Deletes.Count
        && DataContext.GetChageSet().Updates.Count)
{
    throw new Exception("You forgot to do something with your DataContext...");
}
else
{
    DataContext.SubmitChanges();
}
0 голосов
/ 06 ноября 2008

Посмотрите на ObjectTracker или что-то, что зависает от DataContext. Там хранится список изменений.

Кроме того, я полагаю, что SubmitChanges является виртуальным, поэтому вы можете перехватить вызов SubmitChanges и провести там некоторую проверку.

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