私はEntity Framework 6 Code Firstを使用して、大きなPOCOモデルをデータベースに格納しています。モデルは1000sのプロパティを持ちます(lol **を要求しません)。つまり、複数のSQLテーブルに分割する必要があります(列の制限は1024です)。個別にプロパティを指定しなくても、これを行うにはどのような方法があります場合、私は思ったんだけどエンティティフレームワークをプログラムで複数のテーブルに分割する
modelBuilder.Entity<HugeEntity>.Map(m =>
{
m.Properties(e => new { e.Prop1, e.Prop2 });
m.ToTable("HugeEntity1");
}.Map(m =>
{
m.Properties(e => new { e.Prop3, e.Prop4 });
m.ToTable("HugeEntity2");
};
:私は、これは、通常そのような個々の列を指定することによって行われている知っています。理想的には、与えられた列の限界(つまり、1000)に基づいてエンティティを自動的に分割することができます。
標準的な方法がない場合でも、これを動作させるには最も簡単なハッキングは何ですか?モデルのプロパティは変更される可能性がありますので、複数の場所で完全にリストすることは避けてください。
アドバイスありがとうございます。
** CONTEXT:ドメインモデルで、特定のWebページでキャプチャする必要があるユーザー入力データを表します。 WebAPIにも公開されています。私のチームはキーとバリューのペアのアプローチを検討しましたが、WebAPIにヒットした将来のBIアプリケーションがデータを消費するのが難しくなると判断しました。
リフレクションは可能な限りハックとして心に浮かびます。プロパティをループし、テーブル間で等しく分割します。これを行うための「適切な」方法があるかどうかはわかりません。 –
私はその人になり、 "尋ねる"つもりです。 –
できれば、ドキュメントストアデータベース(例としてmongoDB)を調べるとよいでしょう。これらのオブジェクトは、各オブジェクトが独立したスキーマを持つことができる場合に優れています。 – gunr2171