时间:2011-09-29 08:59:39

标签: wcf service dns ria

我正试图绕过树视图并能够做两个级别,但我很难过添加第三级。我假设您制作了第3个分层模板 - 但我不确定它是如何加载的。我正在使用AdventureWorks数据库作为样本数据。

我正在使用Product,ProductCategory和ProductSubCategory表。

我的元数据看起来像。 (只是有趣的部分)

public partial class Product
{
    public string Name { get; set; }

    public int ProductID { get; set; }

    public string ProductNumber { get;set; }

    public ProductSubcategory ProductSubcategory { get; set; }

    public Nullable<int> ProductSubcategoryID { get; set; }
}

public partial class ProductCategory
{
    public string Name { get; set; }

    public int ProductCategoryID { get; set; }

    [Include]

    [Composition]

    public EntityCollection<ProductSubcategory> ProductSubcategory { get; set; }
}

public partial class ProductSubcategory
{
    public string Name { get; set; }

    [Include]

    [Composition]

    public EntityCollection<Product> Product { get; set; }

    public ProductCategory ProductCategory { get; set; }

    public int ProductCategoryID { get; set; }

    public int ProductSubcategoryID { get; set; }

我的查询看起来像:

public IQueryable<Product> GetProduct()
{
    return this.ObjectContext.Product;
}

public IQueryable<ProductCategory> GetProductCategory()
{
    return this.ObjectContext.ProductCategory.Include("ProductSubcategory");
}

public IQueryable<ProductSubcategory> GetProductSubcategory()
{
    return this.ObjectContext.ProductSubcategory.Include("Product");
}

我的代码背后(我遇到了解如何加载两个查询的问题)。我想在ProductCategory下的ProductSubCategory下返回Products。

public partial class Tree : Page
{
    public Tree()
    {
        InitializeComponent();

        AdventureWorksContext ads = new AdventureWorksContext();

        trvTree.ItemsSource = ads.ProductCategories;

        ads.Load(ads.GetProductCategoryQuery());           
    }
}

1 个答案:

答案 0 :(得分:0)

尝试修改GetProductCategory查询:

{
    return this.ObjectContext.ProductCategory.Include("ProductSubcategory").Include("ProductSubcategory.Product");
}

我不知道它是否适用于您想要构建树的情况,但它应该根据需要包含数据。