如何在Linq中创建AsSomeClass?

Bar*_*xto 0 c# linq mapper

我有这个'方法':

private static readonly Expression<Func<EntityClass, SomeClass>> AsSomeClass =
        x => new SomeClass
        {

        };
Run Code Online (Sandbox Code Playgroud)

这让我做:

_ctx.EntityClasses.Where(e => e.SomeProperty == someValue).Select(AsSomeClass);
Run Code Online (Sandbox Code Playgroud)

返回一个IQueryable<SomeClass>很棒的!

在这样做时,我想知道是否有一些方法可以做到这一点,所以我可以这样做:

_ctx.EntityClasses.Where(e => e.SomeProperty == someValue).AsSomeClass() 而不是选择语句.

有没有办法让它成为那样?

Jon*_*Jon 6

可以做到这一点的制作AsSomeClass扩展方法IEnumerable<EntityClass>(或IQueryable<EntityClass>为好,但在这种情况下,不买任何东西),但请不要.

.Select(ConversionFunction)读者完全清楚; .AsSomeClass()相当不透明:它几乎可以做任何事情.你能否告诉他是否例如它投射序列的内容或是否投射它们,或者即使它改变了序列本身的类型?

  • 我接受你的建议,并将继续像转换功能方法一样使用.我不是专家,所以我真的很感激. (2认同)