1

SubSonic 3 と複数の主キー列に問題があります。ActiveRecord T4 スクリプトではサポートされていないようです。

Settings.ttinclude の 173 行目

return this.Columns.SingleOrDefault(x=>x.IsPK) ?? this.Columns[0];

単一の主キー列を取得しようとして失敗しました。

解決策はありますか?

4

4 に答える 4

3

テンプレートを微調整して、将来これをサポートするようにします (多くの人が問題を抱えているため)。ただし、これは変更できます。

return this.Columns.SingleOrDefault(x=>x.IsPK) ?? this.Columns[0];

これに:

return this.Columns.Where(x=>x.IsPK).ToArray();

(これはフリーハンドです) 次に、戻り値の型を Column[] に変更します。この観点から見ると、変更は非常に簡単なはずですが、テンプレート全体を変更する必要があります。

私は人々が複合キーを好むことを知っています - そしてそれらは多対多にとって特に重要ですが、(私の意見) 私はデザインが好きではありません. テーブル (多くない/多くない) には、行を一意に識別するための 1 つの PK が必要です...

また、多くの人がそのようなことを制御できないことも理解しています:)。とにかく、これをフォーク/プッシュして助けてくれるなら、本当に感謝しています。

于 2009-07-26T17:29:22.833 に答える
3

多くの ORM 製品は複合キーをサポートしていません。私の知る限り、NHibernate は、.Net ORM を実行する唯一の有名な製品です。

Mindscape は、同社の Lightspeed 製品のバージョン 3 での複合キーのサポートについて議論していましたが、私はそれについてあまり知りません。

SubSonic は現在複合キーをサポートしていません。

于 2009-07-26T02:56:01.243 に答える
0

EntitySpacesはそれらをサポートしていると思います。

私の2セント-

-- これは、複合キーをサポートするよく知られている ORM は NHibernate だけではないということを示すためだけに、womp への回答を意図したものです。反対票を投じるときは、少なくともコメント (または侮辱 :p ) を残してください --

于 2009-07-26T17:17:35.807 に答える