0

ビジネス ドメイン オブジェクト ( BDO ) クラスがあります。

public class BDO_LIST_DEPARTMENTS
{
    public int DEPARTMENT_ID { get; set; }
    public string DEPARTMENT_NAME { get; set; }
}

そして、私はDataContractクラスを持っています:

[DataContract]
public class DC_LIST_DEPARTMENTS
{
    [DataMember]
    public int DEPARTMENT_ID { get; set; }

    [DataMember]
    public string DEPARTMENT_NAME { get; set; }
}

そして、私のサービスレイヤーでは、BDOをに変換してから、の戻り値の型であるDataContractthis のリストを返そうとしました:DataContractOperationContract

[OperationContract]
    IList<DC_LIST_DEPARTMENTS> GetAllDepartments();

これが私のサービスレイヤーでの最初の試みでした:

public IList<DC_LIST_DEPARTMENTS> GetAllDepartments()
    {
        DC_LIST_DEPARTMENTS DCDepartment = new DC_LIST_DEPARTMENTS();
        IList<DC_LIST_DEPARTMENTS> DCListOfDepartments = new List<DC_LIST_DEPARTMENTS>();
        ICollection<BDO_LIST_DEPARTMENTS> BDOListOfDepartments = Bal.GetAllDepartments();

        foreach (BDO_LIST_DEPARTMENTS BDODepartment in BDOListOfDepartments)
        {
              DCDepartment.DEPARTMENT_ID = BDODepartment.DEPARTMENT_ID;
              DCDepartment.DEPARTMENT_NAME = BDODepartment.DEPARTMENT_NAME;
              DCListOfDepartments.Add(DCDepartment);
        }

        return DCListOfDepartments;
    }

ご覧のとおり、シングルDataContractを に追加しようとしましたIList<DataContract>が、そうすると、そのリストの他のすべての項目がDataContract同じ詳細で同じものに変更されます。

したがって、私の質問は、 の正しい戻り値の型は何かOperationContract、クラスのリストを返す方法、DataContractおよびリスト内の他のすべての項目のデータを変更せずにそのリストに追加する方法です。

4

1 に答える 1