2

我正在尝试使用具有服务引用的 Silverlight C# 在 SQL 表中创建一个包含数据的新行。我收到以下错误:

IDENTITY_INSERT设置为OFF

但我希望Cart_ID自动给出。

表定义:

在此处输入图像描述 在此处输入图像描述

这是我的 C# 代码:

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);
}

我的 C# 操作合同(服务参考):

[OperationContract]
void CreateNewCart(Lloyds_Cart newCart)
{
    PositionDataClassesDataContext context = new PositionDataClassesDataContext();

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

1 回答 1

3

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

确保ColumnAttributedecorates 属性Cart_ID具有参数IsPrimaryKeyIsDbGenerated设置为true. 您还可以在设计器的“属性”窗格中为Cart_ID.

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

于 2013-03-12T15:33:27.067 回答