调用DataContext.SubmitChanges()时发生StackOverflowException

时间:2013-01-24 10:35:13

标签: c# .net linq-to-sql .net-3.5

我正在使用Linq-To-SQL对具有以下定义的表进行插入(省略一些多余的字段):

ID int not null
SourceName varchar(100)
Version int not null
TransactionID int not null
Xml nvarchar(max)

IDSourceNameVersionTransactionID构成了表格的主键。没有外键或约束。

我为我的数据库创建了一个DataContext,然后创建一个新记录。当我在DataContext上调用SubmitChanges时,会抛出StackOverflowException

using (var ctx = new MyDataContext(connectionString))
{
    var row = new MyTable
    {
        ID = 1
        , SourceName = "foo"
        , Version = 1
        , TransactionID = 0 //this is the weird part - see below
        , Xml = "some xml string"
    }

    ctx.MyTable.InsertOnSubmit(row);
    ctx.SubmitChanges();
}

但是,经过大量的替换和反复试验后,如果我将StackOverflowException更改为1({I}我最初认为Xml字段溢出来了),TransactionID就不会被抛出。

我只是因为某些原因无法识别交易ID的情况而使用0。

我显然用Google搜索了这个,但我找到的唯一相关问题是由外键关系造成的。

任何人都知道为什么会这样吗?我有一个工作但很好奇可能是什么原因。

我正在使用.Net 3.5和SQL Server 2005。

0 个答案:

没有答案