私はC#で書かれた階層型アプリを持っています-
フロントエンド-(のページを取得
Customers)ビジネス-(
CustomerServiceおよびCustomerクラス)DataContracts-(
CustomerDTO)DataAccess-(
UnitOfWorkおよびRepositories)
データベースには100を超える列(多くは冗長)を持つCustomerテーブルがあるため、DTOを使用してビジネスレイヤーでCustomerオブジェクトにデータを入力しています。Customerクラスでは、多くのフィールドの名前もデータベース名から変更しました。たとえば、IDをCustomerIDに、FNameをFirstnameに変更しました。
フロントエンドは、ビジネスレイヤーのサービスを使用して、顧客を獲得します。GetAll(), GetByID(int customerID).
私も以下のようなものを提供したいと思いGetPaged methodます。
CustomerServiceクラス
public IEnumerable<Customer> GetPaged(
Func<IQueryable<Customer>, IOrderedQueryable<Customer>> orderBy,
int skip,
int take)
{
foreach (var customerDTO in
unitOfWork.CustomerRepository.GetPaged(orderBy, skip, take))
{
yield return new Customer(customerDTO);
}
}
しかし、はではなくに基づいてをCustomerRepository期待しているため、これは機能しません。orderByCustomerDTOCustomer
フロントエンドにについて何も知られたくないCustomerDTO。
どうすればこれを達成できますか?