当我尝试使用以下类中的对象在ServiceStack中使用“插入”功能(针对SQL Server 2014)时,它会尝试为ContactId插入0(默认的ContactId属性)而不是自动生成一个在数据库中。 ContactId是IDENTITY NOT NULL
。 ContactId是聚簇索引,但GlobalContactId是非密钥主键。
[Alias("Contact")]
[Schema("Customer")]
public partial class Contact
{
[PrimaryKey]
public Guid GlobalContactId { get; set; }
[AutoIncrement]
public int ContactId { get; set;}
...
我这样做是因为:
我原以为如果某个属性有[AutoIncrement]
并且该值与该类型的默认值匹配,那么它会假设该值未设置。
修改
现在我只是回复使用ContactId作为PK和身份,并添加uniqueidentifier和唯一的检查约束
答案 0 :(得分:2)
在OrmLite中,[AutoIncrement]
属性用于指定自动递增主键。因此,它不能用于非主键列。