ServiceStackで(SQL Server 2014に対して)下位クラスのオブジェクトを使用して「挿入」機能を使用しようとすると、0を挿入しようとします(ContactIdプロパティ)をContactIdの代わりに使用することができます。 ContactIdはIDENTITY NOT NULL
です。 ContactIdはクラスタ化インデックスですが、GlobalContactIdは非クラスタ化プライマリキーです。PK以外のフィールドのServiceStack ID - 挿入に失敗しました
[Alias("Contact")]
[Schema("Customer")]
public partial class Contact
{
[PrimaryKey]
public Guid GlobalContactId { get; set; }
[AutoIncrement]
public int ContactId { get; set;}
...
私はこれをやっている理由:
- それ分散アプリケーションだし、携帯電話のホームに必要 - それゆえGUID
- それは古いデータのインポートと、ユーザーが参照するために、その方が簡単です(少なくとも特定の場所で)GUIDよりもむしろintであり、彼らはその前進を続けることを望んでいるでしょう。
- パフォーマンス上の理由から、データが電話ではない他のテーブルへのFKとしてContactIdを使用しています
プロパティーに[AutoIncrement]
があり、値がそのタイプのデフォルト値と一致すると、値が設定されていないと考えられます。
編集今私はPKとアイデンティティの両方としてContactIdを使用してに戻す、と[AutoIncrement]
属性が自動を指定するためのものですOrmLiteで
可能重複http://stackoverflow.com/questions/19277431/servicestack-ormlite-cannot-update-identity-column – Oleg
重複していません。その質問は、私がどのように対処するのか知っている自動増分を持っているテーブルのPKに関するものでした。この場合、IDフィールドは主キーではありません。 –
これはおそらく助けることができます。 http://techfunda.com/howto/121/auto-increment-property-in-model –