(DbLinq の一部として) DbMetal を使用して C# ファイルを作成しようとすると、次のエラーが発生します。
DbMetal: シーケンスに複数の要素が含まれています
主キーの一部として複数の外部キーを参照する場合にのみ表示されます。以下は、問題を引き起こしているテーブルの DDL です。
CREATE TABLE [QuestionChoice]
(
[QuestionaireID] INTEGER NOT NULL,
[QuestionNumber] INTEGER NOT NULL,
[ChoiceNumber] INTEGER NOT NULL,
[Wording] VARCHAR
(
100
)
NOT NULL,
PRIMARY KEY
(
[ChoiceNumber],
[QuestionNumber],
[QuestionaireID]
),
FOREIGN KEY
(
[QuestionNumber],
[QuestionaireID]
)
REFERENCES [Question]
(
[QuestionNumber],
[QuestionaireID]
)
)
SQLite データベースのセットアップに使用しているツールは SQLite Studio です。外部キーを設定するためにテーブル制約を設定しました。
外部キーをテーブル制約としてではなく (項目ごとに) 個別に設定すると、生成されたクラスは Question テーブルへの複数の参照を持ち、テーブルに挿入しようとすると複数の参照とエラーが発生します。