EFを使用してMVC3で適切な方法でコードを分離する方法を知りたいだけです
私のプロジェクト構造によると。
プレゼンテーション->ビューとコントローラー
ドメイン->モデル(事業体)
データ->RepositoryBase、IRepository、ApplicationDbContext
サービス->サードパーティサービス(PayPal、SMS)またはアプリケーションサービス
ApplicationDbContextには、参照としてModelが必要です。
public sealed class ApplicationDbContext : DbContext
{
public DbSet<CountryModel> Country { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
1.では、DbContextをデータに配置するのは良いことですか?または、ドメインに移動する必要がありますか?
今コントローラーで私はコードを書かなければなりません
using (ApplicationDbContext db = new ApplicationDbContext())
{
var countryRepository = new Repository<Country>(db);
if (ModelState.IsValid)
{
countryRepository.insert(country);
db.SaveChanges();
}
}
このコードブロックをビジネスレイヤー/サービスレイヤーで分離する方法はありますか?
したがって、残りの操作を実行するために、コントローラーからそのレイヤーを呼び出し、特定のビジネスエンティティを渡すだけです。
PL-> BLL-> MVC 3&EFを使用したDLLアプローチを実行したいですか?
適切な方法を教えてください。