日期:2014-05-17  浏览次数:20425 次

Entity 的 Model类型该如何转化?
C# code

//DAL层
public EasyFastCMS.Model.UserGroup GetModel(int ID)
        {
            Model.UserGroup model = new Model.UserGroup();
            using (var edm = new EasyFastCMSEntities())
            {
                var query = edm.EasyFastCMS_UserGroup.Where(ug => ug.ID == ID);
                foreach (EasyFastCMS_UserGroup ug in query)
                {
                    model.ID = ug.ID;
                    model.GroupName = ug.GroupName;
                }
            }
            return model;
        }

//BLL层
private readonly SQLServerDAL.UserGroup dal = new SQLServerDAL.UserGroup();
public Model.UserGroup GetModel(int id)
        {
            return dal.GetModel(id);
        }

//Web层

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                LoadInfo();
            }
        }

private void LoadInfo()
        {
            BLL.UserGroup bll = new BLL.UserGroup();
            Model.UserGroup model = bll.GetModel(Convert.ToInt32(Request.QueryString["id"]));

            this.Admin_Users_UserGroup_UserGroupUpDate_ltlID.Text = model.ID.ToString();
            this.Admin_Users_UserGroup_UserGroupUpDate_txtGroupName.Text=model.GroupName;
            this.Admin_Users_UserGroup_UserGroupUpDate_txtGroupIntro.Text=model.GroupIntro;
            this.Admin_Users_UserGroup_UserGroupUpDate_txtOrderID.Text = model.OrderID.ToString();
            ViewState["model"] = model;
        }



如上代码。原本的程序架构为:
DAL
BLL
Model
Web

后来考虑使用ORM,在DAL中增加了一个EF。为了合理的分层,希望EF只负责数据库的增删改查,得到的结果转成Model层中对应的类,我现在的做法感觉是脱裤子放屁,太罗嗦,可是如果不这么做,那么EF就即充当了Model,又充当了DAL。感觉不合理。

能不能做到将EF得到的类(数据库表结果)EasyFastCMS_UserGroup 转化成 Model层中的UserGroup.cs类。当然如果能实现
List<EasyFastCMS_UserGroup> 转化成 List<UserGroup> 那就最好不过了。

求助解决办法。

------解决方案--------------------

List<UserGroup> list=(form 变量 in 数据源
where 条件
select new UserGroup{
ID = 数据源.ID;
GroupName = 数据源.GroupName
}).ToList();