LINQ DataContext.SubmitChanges() в C# Reporting "Ссылка на объект не установлена ​​на экземпляр объекта".

Я думаю, что у многих людей была эта проблема, но я не могу ее исправить или понять, почему она у меня есть. Я рву волосы вот уже пару часов.

Я получаю сообщение об ошибке "Ссылка на объект не установлена ​​на экземпляр объекта". в моем datacontext.SubmitChanges() во ВТОРОЕ время этот метод запускается (я перебираю последовательность строк ObjectName):

    private Object CreateObject(string ObjectName, SystemClassEnum SystemClass)
    {
        Object result = new Object();
        result.Name = ObjectName;
        result.SystemClassID = (int)SystemClass;
        _dataContext.Objects.InsertOnSubmit(result);
        _dataContext.SubmitChanges();
        return result;
    }

Я думал, что это потому, что значение result.Name может быть нулевым, но я так больше не думаю.

Кажется, как-то dataContext закрывается? но в режиме отладки я проверяю состояние соединения и оно "открыто" после возникновения ошибки.

Я использую шаблон репозитория и ASP.NET MVC.

Объект результата (new Object()) является экземпляром автоматически сгенерированного класса LINQ DBML, у которого также есть частичный класс, который я создал с одним присоединенным методом расширения. Я не понимаю, как расширение класса может быть причиной проблемы.

У меня нет идей.

Какие-нибудь мысли? Спасибо за любую помощь, вы можете предоставить!

С наилучшими пожеланиями,

Эрик

1 ответ

Не называйте ни одного из ваших типов Object - это серьезно плохая идея; Вы пожалеете об этом... выберите другое имя... (или System, так далее).

Вы уверены, что ошибка на самом деле не в строке выше (_dataContext.Objects. так далее)? К сожалению, вы не показываете код, относящийся к _dataContext (например, мог ли он стать null), и вы не указываете, добавили ли (например) какие-либо partial методы к контексту данных или объекту, или иметь какие-либо события. Я ожидаю, что проблема будет в одной из этих областей.

Другие вопросы по тегам