Ho 3 progetti nella mia soluzione:
- Un progetto ASP MVC
- Un progetto di app per console
- Un progetto di libreria di classi (il DataAccessLayer)
Non volevo ricreare un modello di dati di entità ADO.net per ogni progetto, quindi ho "semplicemente" creato un nuovo progetto di libreria di classi e aggiunto il modello di dati di entità ADO.net al suo interno. È un modo usuale per creare un livello di accesso ai dati? Qualche miglioramento?
DbContext (progetto DAL)
public partial class ModelContainer : DbContext
{
public ModelContainer(): base("name=ModelContainer")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Thread> Thread { get; set; }
public virtual DbSet<Post> Post { get; set; }
public virtual DbSet<Forum> Forum { get; set; }
public virtual DbSet<SubForum> SubForum { get; set; }
public virtual DbSet<Author> Author { get; set; }
}
Uso del DAL (controller ASP MVC)
public class ForumController : Controller
{
private static ModelContainer db = new ModelContainer();
public ActionResult Index()
{
//returns a list of forums
return View(db.Forum);
}
}