ビジネス ドメイン オブジェクト ( 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をに変換してから、の戻り値の型であるDataContract
this のリストを返そうとしました:DataContract
OperationContract
[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
およびリスト内の他のすべての項目のデータを変更せずにそのリストに追加する方法です。