LINQ InsertOnSubmit: NullReferenceException

Как я решил проблему, я поставил ее в качестве ответа.

Не используйте одиночные и двойные кавычки, особенно когда вы определяете необработанную строку с r перед ней.

Правильный вызов тогда

path = r"C:\Apps\CorVu\DATA\Reports\AlliD\Monthly Commission Reports\Output\pdcom1"

или

path = r'C:\Apps\CorVu\DATA\Reports\AlliD\Monthly Commission Reports\Output\pdcom1'
16
задан tsilb 31 January 2009 в 20:02
поделиться

5 ответов

Получил его.

Вместо того, чтобы создать класс, который наследовался классу DataContext, я расширяю сам класс DC с помощью частичного класса в уровне Business Logic. Оттуда я могу добавить любых конструкторов и методы, которых я желаю.

В этом случае, необходимо скопировать код от существующего (автоматически сгенерированного) конструктора:

public IP(string address) {
Address = address;
Domain = "";
Notes = "";
FirstAccess = DateTime.Now;
LastAccess = DateTime.Now;
this._Sessions = new EntitySet<Session>(new Action<Session>(this.attach_Sessions), new Action<Session>(this.detach_Sessions));
OnCreated(); }

Не уверенный, что находится в том, что обработчик OnCreated, но это, кажется, делает работу, которая сняла с костей меня ранее. Хорошо работает теперь :)

5
ответ дан 30 November 2019 в 21:46
поделиться

Так как конструктор по умолчанию уже инициализирует основу (), это. _ Сессии и выполнения метод OnCreated, все, что необходимо сделать в расширенном конструкторе, является этим:

public IP(string address) : this()
{
    Address = address;
    Domain = "";
    Notes = "";
    FirstAccess = DateTime.Now;
    LastAccess = DateTime.Now;
}
5
ответ дан 30 November 2019 в 21:46
поделиться

Это, разработчик генерировал DataContext или Ваш собственный изготовленный вручную. Я подозрительный, что таблица IPs нельзя инстанцировать в то время, когда Вы пробуете Ваш InsertOnSubmit(). Я не вижу, как это произошло бы со сгенерированным разработчиками DataContext, но я, как было известно, забыл инициализировать свои наборы время от времени в моем собственном коде.

2
ответ дан 30 November 2019 в 21:46
поделиться

Можно попытаться видеть то, что происходит, какие изменения будут сделаны, если Вы поместите точку останова незадолго до SubmitChanges и сделаете быстрые часы dc. GetChangeSet () .

1
ответ дан 30 November 2019 в 21:46
поделиться

Actually it's better to add a call to your constructor that also calls the generic constructor such as:

public IP(string address) : this() {
...
}
10
ответ дан 30 November 2019 в 21:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: