我一直这样做:
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?
答案 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)
您还可以考虑使用LINQ to Entities。 http://msdn.microsoft.com/en-us/library/cc161164(loband).aspx#_Toc188851309