私は EF5 Code First アプリケーションに取り組んでおり、これまでのところ順調に進んでいますが、問題が発生したため、誰かが解決策を提案してくれることを願っています。
基本的に、基本クラスといくつかの派生クラスがあり、それらのマッピングをどのように処理するのか疑問に思っています。ばかげて単純化された例を次に示します。
[Table("Person")]
public class Person
{
public int PersonId { get; set; }
public string Name { get; set; }
}
[Table("EmployeePerson")]
public class EmployeePerson : Person
{
public int HoursWorked { get; set; }
}
[Table("CustomerPerson")]
public class CustomerPerson : Person
{
public int DollarsSpent { get; set; }
}
これまでのところ、これは典型的な Table-per-Type シナリオですが、基本クラスが抽象ではないというヒッチを除きます。EFがそれを受け入れるのに苦労しています.IDでそのようなエンティティをロードしようとすると、EFによって生成された醜いクエリは行を返しません.Person
EmployeePerson
CustomerPerson
誰かが以前にこのようなものを実装したことがありますか? TPT スタイルのマッピングでは、常に基本クラスが抽象である必要がありますか? 私は反対の例を見つけることができませんでしたが、実際の確認もありません. 必要に応じて使用できるいくつかの醜い回避策を考えることができますが、より洗練された解決策がある場合はそれを好みます。
(もう 1 つの問題: 私はサードパーティのデータベースに対して作業しているため、スキーマを変更することはできません。)
ありがとう!