将linq2sql对象映射到实体的最佳方法

时间:2009-10-14 02:17:25

标签: linq-to-sql orm

我一直这样做:

        public List<Role> GetRoles()
    {
        List<Role> result = new List<Role>();

        foreach (var r in Db.tblRoles)
        {
            result.Add(new Role()
            {
                Description = r.d,
                Id = r.Id,
                Responsibility = r.Responsibility
            });

        }
        return result;
    }

我有很多用我的对象模型1:1映射的表,有没有更好的方法将我的表数据放入我的om?

2 个答案:

答案 0 :(得分:3)

使用Select()和ToList()扩展方法更容易。

 public List<Role> GetRoles()
 {
      return Db.tblRoles
               .Select( r => new Role
                {
                     Description = r.d,
                     Id = r.Id,
                     Responsibility = r.Responsibility
                })
               .ToList();
 }

或者您可以简单地将tblRoles重命名为设计器中的角色以及重命名属性 - 如果您可以将LINQ实体视为您的业务实体 - 并且只需执行以下操作:

 public List<role> GetRoles()
 {
       return Db.Roles.ToList();
 }

后者就是我通常所做的,使用设计器生成的代码提供的部分方法钩子,在实体的单独的部分类实现中提供我的业务逻辑。

答案 1 :(得分:1)