次のモデル例 (私の Entity Framework エンティティを反映しており、簡潔にするためにプロパティは省略されています) が与えられます。
public class Company
{
public string Name { get; set; }
public IList<Department> Departments { get; set; }
}
public class Department
{
public string Name { get; set; }
public IList<Employee> Employees { get; set; }
}
public class Employee
{
public string Name { get; set; }
}
これらのエンティティを取得するために、Web UI から WCF データ サービスを使用しています。私が基本的に求めているのは、それぞれが熱心にロードされるCompany
それぞれのレスペティブを持つベストプラクティス/よりエレガントなロード方法です。Department
Employee
現時点で、私のコードは次のようになります。
var proxy = new MyWCFDataService(url);
var companies = proxy.Companies;
foreach (var company in companies)
{
proxy.LoadProperty(company, "Departments");
foreach (var dept in company.Departments)
{
proxy.LoadProperty(dept, "Employees");
}
}
上記を実行する必要がある場合は、UI コントローラーからこのスパゲッティの混乱を取り除くことができるように、サービス操作でこれを実行したいと考えています。私は次のようにしてこれをやろうとしました:
[WebGet]
public IQueryable<Company> GetCompanies()
{
var companies = this.CurrentDataSource.Companies.Include("Departments");
return companies;
}
Company
コレクションは正常に戻っていますが、ここでもコレクションがなく、Department
空のリストです。
アイデアはありますか?