誰かがレガシーデータベースのマッピングを手伝ってくれることを願っています。ここで説明している問題は他の人を悩ませていますが、Web上で本当に良い解決策を見つけることができませんでした。
免責事項:これはレガシーDBです。複合キーを制御することはできません。彼らは吸うし、あなたが彼らが吸うと私に言っても変更することはできません。代理キーも追加できません。これらはオプションではないため、どちらも提案しないでください。
2つのテーブルがあり、両方とも複合キーがあります。一方のテーブルのキーの1つは、もう一方のテーブルからコレクションを取得するためのキーの一部として使用されます。つまり、キーはテーブル間で完全には一致しません。ClassBは、可能であれば、このマッピングのためにプロパティを追加することを避けたいすべての場所で使用されます。
public class ClassA
{
//[PK]
public string SsoUid;
//[PK]
public string PolicyNumber;
public IList<ClassB> Others;
//more properties....
}
public class ClassB
{
//[PK]
public string PolicyNumber;
//[PK]
public string PolicyDateTime;
//more properties
}
ClassAのインスタンスを取得し、PolicyNumberに一致するすべてのClassB行を取得したいと思います。私は1対多で何かを実現しようとしていますが、これは技術的には1対多として扱っている多対多である可能性があることを認識しています。
アソシエーションクラスを使用してみましたが、機能するかどうかを確認するのに十分な距離がありませんでした。私はこれらのより複雑なマッピングに不慣れであり、アドバイスを探しています。私はほとんどどんなアイデアにもオープンです。
ありがとう、コーリー