Я работаю над Entity Framework, чтобы начать работу с ним. Ниже описано, как я организовал свои проекты для взаимодействия с EF. Я просто хочу знать, иду ли я в правильном направлении или нет. Пожалуйста, предложите лучший подход. Пожалуйста, не обращайте внимания на такие вещи архитектуры, как UI, которые не должны иметь ссылки на DAL. Это просто проект "узнай". :)
Вот что я делаю:
Один проект для DAL. Здесь все операции с БД будут выполняться с использованием EF.
Модель - Business Entity классы. Вместо того, чтобы возвращать объект Order EF, я буду возвращать Entity Class of Model. (Есть ли способ сопоставить мои бизнес-сущности с EF-сущностью?)
Пользовательский интерфейс - это вызовет DAL и сделает все.
Проект 1 - DAL
Этот проект также содержит мой файл edmx.
public class DALRepository
{
OrderEntities orderEntitiesContext = new OrderEntities();
public IQueryable<Model.OrderModel> GetOrders ()
{
return orderEntitiesContext.Orders.Select(o => new Model.OrderModel { OrderName = o.OrderName, Id = o.OrderID });
}
}
Проект 2 - Модель
public class OrderModel
{
public long Id { get; set; }
public string OrderName { get; set; }
}
Проект 3 - Пользовательский интерфейс
public partial class OrderList : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DAL.DALRepository dal = new DAL.DALRepository();
GridView1.DataSource = dal.GetOrders();
GridView1.DataBind();
}
}