3

宿題としてタスクトラッカーを作るように言われました。この割り当てのエンティティ フレームワーク、特に継承の側面の使用方法を学びたいと思いました。プロジェクト、タスク、サブタスクにはすべて似たようなプロパティがたくさんあるので、継承を使おうと思ったのですが、特定のプロジェクトを照会する方法がわかりません。

Visual Studio で次の図を作成しました。

エンティティ図

次に、このモデルからデータベースを作成しました。従業員プロジェクトを取得するにはどうすればよいですか?

私はこれから始めました:

ModelContainer m = new ModelContainer();
var employee = (from e in m.Employees 
               where e.UserName == username
               select e).First<Employee>();

ただし((Employee)employee).Projects、利用できませんが、((Employee)employee).Itemsあります。((Employee)employee).Items.Projectsも利用できません。従業員のプロジェクトを取得するにはどうすればよいですか? このために、 Navigation プロパティを Employeesに追加する必要がありますか?

4

1 に答える 1

4

タイプ Manager のエンティティをフィルタリングするには、 Queryable.OfType(TResult) 拡張メソッドを使用する必要があります。

using (var model = new ModelContainer())
{
    Manager manager = (from m in model.Employees.OfType<Manager>()
                       where m.UserName == username
                       select m).FirstOrDefault();
}

関連リソース:

于 2010-11-30T23:09:37.497 に答える