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
методы к контексту данных или объекту, или иметь какие-либо события. Я ожидаю, что проблема будет в одной из этих областей.