Coder Social home page Coder Social logo

eflinqexpressionprojection's Introduction

EFLinqExpressionProjecton

This project enables the reuse of LINQ expression logic in projections. This is a fork of LINQ Expression Projection but with support for async queries from Entity Framework 6 and later.

Usage

To use, call extension method AsExpressionProjectable() on the collection queried, and when projecting call the extension method Project<TIn, TResult>(TIn) (on a field, method or any other code element) returning a selector of type Expression<Func<TIn, TResult>>. TIn and TResult can be anything, and they will both be inferred by the compiler meaning that usages of Project() do not have to explicitly specify them.

Example:

Expression<Func<Project, double>> averageEffectiveAreaExpression =
  proj => proj.Subprojects.Average(sp => sp.Area);

var projects = await context.Projects
  .AsExpressionProjectable()
  .Select(p => new 
  {
    Project = p,
    AverageEffectiveArea = averageEffectiveAreaExpression.Project(p)
  })
  .ToListAsync();

Installation

Find this on NuGet: https://www.nuget.org/packages/EFLinqExpressionProjection


By Weiran Zhang
Website | Twitter | GitHub

eflinqexpressionprojection's People

Contributors

robshakespeare avatar weiran avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.