2016-03-21 4 views
1

私はEctoを既存のSqlServerデータベースにフックしようとしています。 SqlServerはプライマリキーフィールドを自動入力したいので、挿入したときに値を指定することはできません。私はもともとフィールドを必須としてマークしていましたが、削除した後でも、それを構築するINSERTクエリにはそのフィールドがあり、それにnilを入れようとしています。だから私はまだエラーが発生しています。私がモデルを設定する特定の方法、またはINSERTに渡して動作させるべきものがありますか?どのようにSqlServerに挿入しますか?Ectoを使用してSqlServerテーブルにどのように挿入しますか?

私はtds_ectoアダプターを使用しています。私が得るエラーは次のとおりです。

Cannot insert explicit value for identity column in table 'TextMessageHistory' when IDENTITY_INSERT is set to OFF 
+0

どのDBアダプタを使用していますか? – Tetaxa

+0

私はtds_ectoアダプターを使用しています。他のSqlServerアダプタがありますか? – Matt

+0

楽しいものをやっているような音Matt! –

答えて

3

私のモデルでプライマリキーをどのように宣言したかが問題だったようです。私は使用しました:

@primary_key {:TextMessageHistoryId, :id, []} 

しかし、それはデータベースが自動的にキーを生成することを理解していませんでした。そこで、私はそれを次のように変更しました:

@primary_key {:TextMessageHistoryId, :id, autogenerate: true} 

そして、プライマリキーに物事を挿入しようとしました。

関連する問題