首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AsEnumerable与查询语法

AsEnumerable与查询语法
EN

Stack Overflow用户
提问于 2015-11-24 00:09:55
回答 1查看 129关注 0票数 0

我有一个使用查询语法编写的相当复杂的Linq表达式。简化后,它看起来像是:

代码语言:javascript
复制
var query = 
    from a in ctx.A
    from b in ctx.B
    where a.Bid == b.Id
    select new MyType()
    {
        Foo = a.Foo,
        Bar = b.Bar
    }

我必须修改查询,以便以查询提供程序无法计算的方式在MyType的新实例上设置属性。结果集相当小,因此使用.AsEnumerable()是合理的。我找到了一个MSDN示例,它展示了如何在一个简单的案例中做到这一点。

代码语言:javascript
复制
IEnumerable<DataRow> query =
    from product in products.AsEnumerable()
    select product;

如何在更复杂的情况下使用AsEnumerable()?也就是说,我如何实现这样的目标

代码语言:javascript
复制
var query = 
    from a in ctx.A
    from b in ctx.B
    where a.Bid == b.Id
    AsEnumerableGoesHereSomehow
    select new MyType()
    {
        Foo = a.SomeClientSideCalculation(),
        Bar = b.Bar
    }

我不想执行连接和过滤客户端。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-24 00:34:42

可以将{a=a,b=b}简化为您实际需要的属性,但您可以使用它作为开始:

代码语言:javascript
复制
var query =( 
    from a in ctx.A
    from b in ctx.B
    where a.Bid == b.Id
    select new 
    {
        a = a,
        b = b
    })
    .AsEnumerable()
    .Select(x=>new MyType {
      Foo=Something(x.a),
      Bar=x.b
    });
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33883188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档