1
當我嘗試在ServiceStack(針對SQL Server 2014)中使用下面的類中的對象使用「插入」功能時,它會嘗試插入0(默認的ContactId屬性)爲ContactId而不是在數據庫中自動生成一個。 ContactId是IDENTITY NOT NULL
。 ContactId是聚簇索引,但GlobalContactId是非聚簇主鍵。服務堆棧身份不是PK - 插入失敗
[Alias("Contact")]
[Schema("Customer")]
public partial class Contact
{
[PrimaryKey]
public Guid GlobalContactId { get; set; }
[AutoIncrement]
public int ContactId { get; set;}
...
我這樣做是因爲:
- 這是一個分佈式應用程序,並且需要手機之家 - 因此GUID
- 這是舊數據的導入和它的用戶更方便地引用一個int而不是guid(至少對於他們的具體位置),他們會希望繼續向前移動
- 我使用ContactId作爲FK到其他數據無法通過性能原因返回主頁的表
我會想如果一個屬性有[AutoIncrement]
並且該值與該類型的默認值相匹配,那麼它會假定該值沒有設置。
編輯
現在我只是恢復到使用的ContactID既是PK和身份,並配有獨特的檢查約束
可能的副本http://stackoverflow.com/questions/19277431/servicestack-ormlite-cannot-update-identity-column – Oleg
不是重複。這個問題是關於具有自動增量的表格的PK - 我知道該如何處理。在這種情況下,標識字段不是主鍵。 –
也許這可以幫助。 http://techfunda.com/howto/121/auto-increment-property-in-model –