L2Sを使用しており、次のようなクラスがあります。
public class HumanContainer
{
public List<IHuman> Humans { get; set; }
public string SomeOtherProperty { get; set; }
}
私たちのデータベースには次のようなテーブルがあります:
HumanContainer
-Geek
これまでのところ、人間のタイプは1つだけです(オタク)。また、HumanContainersをDBとの間で送受信する場合、それらをオタクとして扱うことがわかっています。2人目の人間(アスリート)が必要になったので、これを実装する方法を選択できます。
1つのオプションは、DBに別のテーブル(Athlete)を作成することです:
HumanContainer
-Geek
-Athlete
このような新しい具体的なHumanごとに、HumanContainer.Humansをループして型を検出し、適切なEntitySet <>に追加して、保存する必要があります。
もう1つのオプションは、すべてのHumanに対して1つのテーブルのみを持つことです
。HumanContainer
-Humans
その場合、Humanを特定のタイプにシリアル化してその列に格納するXML列のようなものが必要になります。次に、データを取得するときにその列を逆シリアル化する必要があります。
推奨されるアプローチの1つはありますか?人々がこの状況にどのように対処してきたのか知りたいです。ここに記載していない3番目のアプローチはありますか?