3

我想很多人都遇到过这个问题,但我无法解决它或理解我为什么会遇到它。我已经把头发扯了几个小时了。

我收到错误消息“对象引用未设置为对象的实例。” 在我的 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 自动生成的类的一个实例,该类还具有我创建的带有单个扩展方法的部分类。我看不出类的扩展是如何导致问题的。

我没主意了。

有什么想法吗?感谢您的任何帮助,您可以提供!!

此致,

埃里克

4

1 回答 1

2

不要打电话给你的一种类型Object——这是一个非常糟糕的主意;你会后悔的......选择一个不同的名字......(或System,等等)。

您确定错误实际上不在上面的行(_dataContext.Objects.等)上吗?不幸的是,您没有显示任何与相关的代码_dataContext(例如,它会变成事件。我希望问题出在这些领域之一。nullpartial

于 2009-10-07T06:23:14.350 回答