SubSonic 3 と複数の主キー列に問題があります。ActiveRecord T4 スクリプトではサポートされていないようです。
Settings.ttinclude の 173 行目
return this.Columns.SingleOrDefault(x=>x.IsPK) ?? this.Columns[0];
単一の主キー列を取得しようとして失敗しました。
解決策はありますか?
SubSonic 3 と複数の主キー列に問題があります。ActiveRecord T4 スクリプトではサポートされていないようです。
Settings.ttinclude の 173 行目
return this.Columns.SingleOrDefault(x=>x.IsPK) ?? this.Columns[0];
単一の主キー列を取得しようとして失敗しました。
解決策はありますか?
テンプレートを微調整して、将来これをサポートするようにします (多くの人が問題を抱えているため)。ただし、これは変更できます。
return this.Columns.SingleOrDefault(x=>x.IsPK) ?? this.Columns[0];
これに:
return this.Columns.Where(x=>x.IsPK).ToArray();
(これはフリーハンドです) 次に、戻り値の型を Column[] に変更します。この観点から見ると、変更は非常に簡単なはずですが、テンプレート全体を変更する必要があります。
私は人々が複合キーを好むことを知っています - そしてそれらは多対多にとって特に重要ですが、(私の意見) 私はデザインが好きではありません. テーブル (多くない/多くない) には、行を一意に識別するための 1 つの PK が必要です...
また、多くの人がそのようなことを制御できないことも理解しています:)。とにかく、これをフォーク/プッシュして助けてくれるなら、本当に感謝しています。
多くの ORM 製品は複合キーをサポートしていません。私の知る限り、NHibernate は、.Net ORM を実行する唯一の有名な製品です。
Mindscape は、同社の Lightspeed 製品のバージョン 3 での複合キーのサポートについて議論していましたが、私はそれについてあまり知りません。
SubSonic は現在複合キーをサポートしていません。
EntitySpacesはそれらをサポートしていると思います。
私の2セント-
-- これは、複合キーをサポートするよく知られている ORM は NHibernate だけではないということを示すためだけに、womp への回答を意図したものです。反対票を投じるときは、少なくともコメント (または侮辱 :p ) を残してください --