ユーザーが自分で登録できるアプリケーションを作成し、登録後にホームページに移動します.MVC3でこれを行っていますが、3Tierに変換しています.このために、元のプロジェクトをプレゼンテーションと名付け、DALを作成し、モデルを追加しました.フォルダーと DbContext もそれに加えて、プレゼンテーションからモデルを削除しました。次に、挿入、削除、更新のすべてのロジックを記述し、プレゼンテーションにあるコントローラーでアクセスする BLL を作成する必要があります。これどうやってするの?これについて私を案内してください!!!
1 に答える
ソリューション全体を書き直すように私たちに依頼しているようですか?
物事を成し遂げる方法についてのヒントを提供する多くのスターター キットがオンラインにあります。同じ結果を得るには、さまざまな方法があります。私のやり方を簡単に紹介します。
この例では、顧客を参照します。ソリューションに合わせて変更できます。
という解決策がありMyProject.DomainModel
ます。このプロジェクトには、顧客クラスがあります。
public class Customer
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
というプロジェクトがありMyProject.EntityFramework
ます。ここにすべてのリポジトリ クラスがあります。カスタマー リポジトリ メソッドの例:
public IEnumerable<Customer> FindAll()
{
return DatabaseContext.Customers;
}
次に、という別のプロジェクトがありMyProject.Services
ます。カスタマー サービスは、カスタマー リポジトリを呼び出します。サービス層は必要ありませんが、ロジックが必要な場合や他のリポジトリを呼び出す必要がある場合は、サービス層を使用します。これは、サービス層からリポジトリ メソッドを呼び出す方法です。
public interface ICustomerService
{
IEnumerable<Customer> FindAll();
}
public class CustomerService : ICustomerService
{
private readonly ICustomerRepository customerRepository;
public CustomerService(ICustomerRepository customerRepository)
{
this.customerRepository = customerRepository;
}
public IEnumerable<Customer> FindAll()
{
return customerRepository.FindAll();
}
}
CustomerService コンストラクターが ICustomerRepository のインスタンスを受け取ることがわかります。これは、 のような依存性注入フレームワークによって処理されAutofac
ます。
コントローラーには、すべての顧客を表示するリスト ビューを持つリスト アクション メソッドがあります。
public class CustomerController : Controller
{
private readonly ICustomerService customerService;
public CustomerController(ICustomerService customerService)
{
this.customerService = customerService;
}
public ActionResult List()
{
IEnumerable<Customer> customers = customerService.FindAll();
return View(customers);
}
}
これよりもはるかに多くのことがあります。いくつかのスターター キットをオンラインでダウンロードして、正しい方法で作業する必要があります。私が示したのは、大まかな概要です。
これが役立つことを願っています。