LINQ如何返回业务实体到上层逻辑

标签: Linq
发布时间: 2010/10/2 20:16:22

RT

解决方法 1:

LINQ会为我们的数据表、视图生成Table<T>,但实际应用中,我们会把在UI层引用LINQ所在的工程,然后直接使用这个Table<T>么?至少我不会
我们需要把Table转换成我们自己定义的实体(Entity/Model)
select new Entity { ... } 不就完了?没错,但是如果我有类似
GetUserById(Guid UserId)
GetAllUsers()
GetAllActiveUsers()
是不是要在所有方法中,把这个select写一遍?可不可以把这个select独立成一个方法?
像之前所说的,LINQ在最终使用数据之前并不生成SQL语句,也就是说在ToList(), Any(), foreach等等之前,你可以任意的组合,反复地查询,这就给我们独立select方法提供了可能。

private IQueryable<Entities.Tag> TranslateToEntity(IQueryable<Tag> tags)
{
    return from t in tags
           select new Entities.Tag
           {
               TagId = t.TagId,
               Text = t.Text,
               CreateTime = t.CreateTime
           };
}

官方微信
官方QQ群
31647020