我有一张桌子
CREATE TABLE [dbo].[ServiceTestCase](
[SSN] [int] IDENTITY(600000001,1) NOT NULL,
[Description] [varchar](max) NULL,
[EmbeddedResponse] [varchar](max) NULL,
[ResponseType] [varchar](50) NULL,
[DocumentType] [varchar](50) NULL,
[Id] [uniqueidentifier] NOT NULL,
[ServiceType] [varchar](50) NOT NULL,
CONSTRAINT [PK_TestCase] PRIMARY KEY CLUSTERED
我的班级
public class ServiceTestCase
{
public ServiceTestCase ()
{
}
public string ServiceType { get; set; }
[ServiceStack.DataAnnotations.AutoIncrement]
public Guid Id { get; set; }
[ServiceStack.DataAnnotations.AutoIncrement]
public long SSN { get; set; }
public string Description { get; set; }
public string EmbeddedResponse { get; set; }
public EmbeddedResponseType ResponseType { get; set; }
public EmbeddedDocumentType DocumentType { get; set; }
}
当我调用db.Insert(new ServiceTestCase {/ * Id = testId,* / ServiceType =“Credit”}); 我收到以下错误: System.Data.SqlClient.SqlException:当IDENTITY_INSERT设置为OFF时,无法在表'ServiceTestCase'中为identity列插入显式值。
如何让ormlite忽略自动增量字段,以便我可以插入一个项目?
答案 0 :(得分:5)
您可以使用[ServiceStack.DataAnnotations.AutoIncrement]
注释ID。
来源:https://groups.google.com/forum/#!msg/servicestack/JM09UGMZpkY/Klnmwq5pWoMJ
答案 1 :(得分:0)
对于偶然发现此问题的其他人,[ServiceStack.DataAnnotations.Compute]
属性告诉OrmLite忽略插入/更新列。