22

私は次のリポジトリメソッドを持っています:-

public AccountDefinition GetCustomer2(int id)
{
    var c = entities.AccountDefinitions
            .Where(p=>p.ORG_ID==id)
            .Include(a => a.SDOrganization)
            .Include(a2 => a2.SiteDefinitions)
            .Include(a3 => a3.SDOrganization.AaaPostalAddresses)
            .Include(a4 => a4.SiteDefinitions.SelectMany
                              (a5 => a5.DepartmentDefinitions.SelectMany
                                    (a6 => a6.SDUsers.Select
                                          (a7 => a7.AaaUser))))
                                                   .SingleOrDefault();

    return c;
}

上記のメソッドを呼び出す次のアクション メソッド:-

public ActionResult Details2(int id = 0)
{
    AccountDefinition cd = repository.GetCustomer2(id);
    return View("copy",cd);
}

しかし、 Action Method に移動すると、リポジトリ クラスで次のエラーが発生します。

インクルード パス式は、型で定義されたナビゲーション プロパティを参照する必要があります。参照ナビゲーション プロパティにはドット パスを使用し、コレクション ナビゲーション プロパティには Select 演算子を使用します。

では、私のコードの何が問題なのですか?

4

1 に答える 1

29

あなたは次のようなことをしたいと思うかもしれません

public AccountDefinition GetCustomer2(int id)
        {

            var c = entities.AccountDefinitions.Where(p=>p.ORG_ID==id)
                .Include(a => a.SDOrganization)
                .Include(a2 => a2.SiteDefinitions)
                .Include(a3 => a3.SDOrganization.AaaPostalAddresses)
                .Include(a4 => a4.SiteDefinitions.Select(a5 => a5.DepartmentDefinitions.Select(a6 => a6.SDUsers.Select(a7 => a7.AaaUser))));

            return c;
        }
于 2013-07-11T15:27:24.660 に答える