C# 标识_INSERT设置为OFF(且应为)

C# 标识_INSERT设置为OFF(且应为),c#,silverlight,linq-to-sql,C#,Silverlight,Linq To Sql,我试图使用Silverlight C#with Service reference在SQL表中创建一个包含数据的新行。我发现以下错误: IDENTITY\u INSERT设置为OFF 但是我希望自动提供购物车ID 表定义: 这是我的C#代码: 最有可能的属性Cart\u ID未标记为上下文类声明中生成的DB。默认情况下,此属性包含0,Linq to SQL尝试将此值插入DB中的相应列,但失败 确保装饰属性Cart\u ID的ColumnAttribute将参数IsPrimaryKey和IsD

我试图使用Silverlight C#with Service reference在SQL表中创建一个包含数据的新行。我发现以下错误:

IDENTITY\u INSERT
设置为
OFF

但是我希望自动提供
购物车ID

表定义:

这是我的C#代码:


最有可能的属性
Cart\u ID
未标记为上下文类声明中生成的DB。默认情况下,此属性包含0,Linq to SQL尝试将此值插入DB中的相应列,但失败

确保装饰属性
Cart\u ID
ColumnAttribute
将参数
IsPrimaryKey
IsDbGenerated
设置为
true
。您还可以在
Cart\u ID
的属性窗格中的设计器中查看它


更新(查看上下文代码后):属性中缺少
IsDbGenerated
参数,正如预期的那样。将其设置为
true
,一切都应该正常。

您的EDM知道它是一个标识列吗?为什么必须关闭标识?Joe Enos:CREATE TABLE[dbo]。[Lloyds_Cart]([Cart_ID][int]identity(1,1)NOT NULL,[Cart_Date][Date]NOT NULL Cart_Name][varchar 50]NOT NULL,CONSTRAINT[Lloyds_Cart]主键组Daniel A.White:这样两个列可以有相同的名称,由不同的ID分隔。您没有向我们展示任何与数据访问相关的代码,这几乎可以肯定是问题所在。
void createNewCart(String inpCartName)
{
    PositionServiceReference.PositionServiceClient service = new PositionServiceReference.PositionServiceClient();

    Lloyds_Cart newCart = new Lloyds_Cart();
    newCart.Cart_Date = DateTime.Today;
    newCart.Cart_Name = inpCartName;

    service.CreateNewCartCompleted += 
        new EventHandler<System.ComponentModel.AsyncCompletedEventArgs>(service_CreateNewCartCompleted);
    service.CreateNewCartAsync(newCart);
}
[OperationContract]
void CreateNewCart(Lloyds_Cart newCart)
{
    PositionDataClassesDataContext context = new PositionDataClassesDataContext();

    context.Lloyds_Carts.InsertOnSubmit(newCart);
    context.SubmitChanges();
}