1

次のモデル例 (私の 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それぞれのレスペティブを持つベストプラクティス/よりエレガントなロード方法です。DepartmentEmployee

現時点で、私のコードは次のようになります。

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空のリストです。

アイデアはありますか?

4

1 に答える 1

4
var companies = proxy.Companies.Expand("Departments");
于 2012-09-05T15:17:22.460 に答える