私は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
期待しているため、これは機能しません。orderBy
CustomerDTO
Customer
フロントエンドにについて何も知られたくないCustomerDTO
。
どうすればこれを達成できますか?