すべてのデータ アクセス コードをデータ アクセス レイヤーに移動することをお勧めします。したがって、このコードを別のクラスに配置して、コントローラーから参照して呼び出すことができます。たとえば、さまざまな操作を定義するインターフェイスを定義できます。
public interface IRepository
{
void Insert(SignUpModel model);
}
次に、使用しているデータ アクセス テクノロジ (EF など) で動作する特定の実装を用意します。
public class RepositoryEF : IRepository
{
public void Insert(SignUpModel model)
{
using(DataClassesDataContext dc= new DataClassesDataContext())
{
Dummytable dm = new Dummytable();
dm.Name = sm.password;
}
}
}
次のステップは、コントローラーにこのリポジトリをコンストラクターの依存関係として使用させることです。
public class SomeController : Controller
{
private readonly IRepository repo;
public SomeController(IRepository repo)
{
this.repo = repo;
}
[HttpPost]
public ActionResult Index(SignUpModel sm)
{
this.repo.Insert(sm);
...
}
}
あとは、いくつかの DI フレームワークを選択し、依存関係を結び付けるだけです。
このようにして、コントローラー ロジックとデータ アクセス レイヤーを明確に分離できます。これにより、アプリケーションのさまざまなレイヤーを個別に単体テストできます。