Linq to SQL上的Stackoverflow异常

时间:2013-03-05 20:39:41

标签: c# linq

我正在使用Linq to SQL来访问我的SQL Ce数据库。

var Logcontext = new LogContext(GCUtility.LconnectionPool.Connection);
{           
 var _ApplicationsK = (from u in Logcontext.Applications select u.PK_Key).ToList<int>();
}

在上面的代码中,PK_Key是数据库中自动递增的整数变量。它抛出一个异常“System.Data.SqlServerCe.dll中出现类型'System.StackOverflowException'的未处理异常”。我尝试在Visual Studio上清理,重建,重启等。我使用的是Linq运行时版本v4.0.30319。我的代码有什么问题?

表结构如下所示。

PK_Key (Type = int, PrimaryKey = true, Identity = True, Identity increment = 1, seed =1 )

Username (Type = varchar, AllowNulls = True)

Linq SqlMetal.exe为coloumn PK_Key

生成以下代码
 [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_PK_Key", AutoSync = AutoSync.OnInsert, DbType = "Int NOT NULL IDENTITY", IsPrimaryKey = true, IsDbGenerated = true)]
    public int PK_Key
    {
        get
        {
            return this._PK_Key;
        }
        set
        {
            if ((this._PK_Key != value))
            {
                this.OnPK_KeyChanging(value);
                this.SendPropertyChanging();
                this._PK_Key = value;
                this.SendPropertyChanged("PK_Key");
                this.OnPK_KeyChanged();
            }
        }
    }

1 个答案:

答案 0 :(得分:2)

我想出了实际问题,我有另一个继承了这个类的子类。上面的代码在父类的构造函数中。我在父类中实例化了继承的子类,导致无限循环。愚蠢的我。