0

我正在使用 C# 中的 MVVM 模式。我有一个 PlaceChild、PlaceChildList 类和一个包含 PlaceChildList 的 Manage 类。PlaceChild 的 ForeignKey 为 ManageID。

我想在 Manage 类的“LoadProperty”方法中用具有 ManageID 外键的 PlaceChild 填充 PlaceChildList。我知道有一种特殊的方法来处理外键,但我找不到任何东西。

简短:
类-->

管理

PlaceChild

PlaceChildList

Manage 包含我想用具有 Manage 的 ForeignKey 的 PlaceChild 对象填充的 PlaceChildList。

表格 -->

管理

地点(ForeignKey = ManageID)

    private void LoadData(Data.Manage data)
    {
        using (BypassPropertyChecks)
        {
            this.ID = data.ID;
            this.Name = data.Name;

            // this.PlaceChildListdata = .... get data by foreign key this.ID
        }
    }
4

1 回答 1

0

您可能知道,CSLA 不会实现您的数据访问代码,您可以这样做。

不过,数据门户确实有助于协调使用数据加载您的对象。我假设您使用的是封装调用 (DataPortal_XYZ),而不是数据门户中的工厂实现。

(我假设您已经阅读了“使用 CSLA 4”电子书,或者这些年来类似的东西)

数据门户有一个子对象概念。因此,在您的根对象的 DataPortal_Fetch 方法中(我假设它正在调用您的 LoadData 方法,如您的帖子中所示),您可以调用 DataPortal.FetchChild 来获取每个子对象。

FetchChild 方法接受一个 params 数组,允许您传入为每个子对象加载数据所需的任何参数。

在集合的情况下,父对象(列表类)通常调用 DAL 以取回集合的所有数据,然后循环调用 FetchChild 以创建和加载每个子对象。该子项的特定数据行作为参数传递。

CSLA 安装程序下载的 Samples 文件夹中有很多这样的示例。“使用 CSLA 4:数据访问”电子书详细介绍了所有这些内容。

于 2013-05-20T16:27:36.407 回答