私は私のSQL Serverデータベース内の3つのテーブルがあります。これらの各テーブルも発見されたいくつかの列が含まれていポリモーフィックな関連および分割テーブル
- 教師
- 学生
- 親
を他の例では、例えば:
- 姓
- 姓
他のすべての列が異なっています。これは従来のデータベースです。私はそれを変更することはできません。私のC#のコードで
、私が持っていると思います:、役割と人の間で多型many-to-one関連です
public partial class Person
{
public string FirstName { get; set; }
public string Surname { get; set; }
public virtual ICollection<Role> Roles { get; set; }
}
public interface Role
{
}
public partial class Teacher : Role
{
public string School { get; set; }
}
public partial class Student : Role
{
public string YearLevel { get; set; }
}
public partial class Parent : Role
{
public string Blagh { get; set; }
}
。
私はこれが欲しい理由は、人が先生と親の両方になれるからです。
私の質問は、データベースからビジネスオブジェクトを移入するためにどの技術を使用すべきですか?
私は、Entity Framework 4.1のDbContextについて調べました。私はデータアノテーションのアプローチが好きですが、私が望むことはできますか?そうでない場合は、Fluent APIを使用できますか?
Entity Frameworkがこれを行うことができない場合は、NHibernate(属性を使用することが望ましい)、Linq-to-SQLはどうですか?
私はNHibernateが多相関連を扱うことができると知っていますが、これはここのようなエンティティ間でテーブルを分割しているところで可能ですか?