Fluentsoft.Queryable
2.0.1
dotnet add package Fluentsoft.Queryable --version 2.0.1
NuGet\Install-Package Fluentsoft.Queryable -Version 2.0.1
<PackageReference Include="Fluentsoft.Queryable" Version="2.0.1" />
paket add Fluentsoft.Queryable --version 2.0.1
#r "nuget: Fluentsoft.Queryable, 2.0.1"
// Install Fluentsoft.Queryable as a Cake Addin #addin nuget:?package=Fluentsoft.Queryable&version=2.0.1 // Install Fluentsoft.Queryable as a Cake Tool #tool nuget:?package=Fluentsoft.Queryable&version=2.0.1
Queryable Class
Definitions
Namespace: Fluentsoft.System.Linq
Assembly: fluentsoft.queryable.dll
Package: Fluentsoft.Queryable
Namespace: Fluentsoft.System.Linq
class | Description |
---|---|
Queryable | Extension methods for IQueryable<T> |
ExpressionExtensions | Extsnsions methods for Expression |
class Queryable {#Queryable_ref}
Provides a set of extensions methods for querying data structures that implement IQueryable<T>.
Method | Description |
---|---|
IQueryable<TResult> LeftOuterJoin<TOuter, TInner, TKey, TResult>(IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKey, Expression<Func<TInner, TKey>> innerKey, Expression<Func<TOuter, TInner?, TResult>> resultSelector) | Correlates all records from the left table, and the matching records from the right table based on matching keys |
IQueryable<TResult> RightOuterJoin<TOuter, TInner, TKey, TResult>(this IEnumerable<TOuter> outer, IQueryableTInner> inner, Expression<Func<TOuter, TKey>> outerKey, Expression<Func<TInner, TKey>> innerKey, Expression<Func<TOuter?, TInner, TResult>> resultSelector) | Correlates all records from the right table, and the matching records from the left table based on matching keys |
IQueryable<TResult> FullOuterJoin<TOuter, TInner, TKey, TResult>(this IQueryable<TOuter> outer, IQueryable<TInner> inner, Expression<Func<TOuter, TKey>> outerKey, Expression<Func<TInner, TKey>> innerKey, Expression<Func<TOuter?, TInner?, TResult>> resultSelector) | Correlates all records from the right table, and all records from the left table based on matching keys |
IQueryable<TResult> Select<T, TResult, T1, T2>(IQueryable<T> source, Expression<Func<T1, T2, TResult>> selector) | Projects each element of a sequence into a new form. |
IQueryable<TResult> Select<T, TResult, T1, T2, T3>(IQueryable<T> source, Expression<Func<T1, T2, T3, TResult>> selector) | Projects each element of a sequence into a new form. |
IQueryable<T> Where<T, T1, T2, T3>(IQueryable<T> source, Expression<Func<T1, T2, T3, bool>> predicate) | Filters a sequence of values based on a predicate with three arguments taken from source value by splitting. |
IQueryable<T> Where<T, T1, T2>(IQueryable<T> source, Expression<Func<T1, T2, bool>> predicate) | Filters a sequence of values based on a predicate with two arguments taken from source value by splitting. |
LeftOuterJoin
Correlates all records from the left table, and the matching records from the right table based on matching keys
public static IQueryable<TResult> LeftOuterJoin<TOuter, TInner, TKey, TResult>(this
IQueryable<TOuter> outer,
IEnumerable<TInner> inner,
Expression<Func<TOuter, TKey>> outerKey,
Expression<Func<TInner, TKey>> innerKey,
Expression<Func<TOuter, TInner?, TResult>> resultSelector);
Type Parameters
TOuter
The type of the elements of the first sequence.
TInner
The type of the elements of the second sequence.
TKey
The type of the keys returned by the key selector functions.
TResult
The type of the result elements.
Parameters
outer
IQueryable<TOuter>
The first sequence to join.
inner
IEnumerable<TInner>
The sequence to join to the first sequence.
outerKeySelector
Expression<Func<TOuter,TKey>>
A function to extract the join key from each element of the first sequence.
innerKeySelector
Expression<Func<TInner,TKey>>
A function to extract the join key from each element of the second sequence.
resultSelector
Expression<Func<TOuter,TInner,TResult>>
A function to create a result element from two matching elements.
Returns
IQueryable<TResult>
An IQueryable<T> that has elements of type TResult obtained by performing an left outer join on two sequences.
Example
ctx.Departments.LeftOuterJoin(ctx.Employees,
z => z.ID,
z => z.DepartmentID,
(department, employee) => new
{
Department = department.Name,
Employee = employee.Name,
})
RughtOuterJoin
public static IQueryable<TResult> RughtOuterJoin<TOuter, TInner, TKey, TResult>(this
IEnumerable<TOuter> outer,
IQueryable<TInner> inner,
Expression<Func<TOuter, TKey>> outerKey,
Expression<Func<TInner, TKey>> innerKey,
Expression<Func<TOuter, TInner?, TResult>> resultSelector);
Type Parameters
TOuter
The type of the elements of the first sequence.
TInner
The type of the elements of the second sequence.
TKey
The type of the keys returned by the key selector functions.
TResult
The type of the result elements.
Parameters
outer
IEnumerable<TOuter>
The first sequence to join.
inner
IQueryable<TInner>
The sequence to join to the first sequence.
outerKeySelector
Expression<Func<TOuter,TKey>>
A function to extract the join key from each element of the first sequence.
innerKeySelector
Expression<Func<TInner,TKey>>
A function to extract the join key from each element of the second sequence.
resultSelector
Expression<Func<TOuter,TInner,TResult>>
A function to create a result element from two matching elements.
Returns
IQueryable<TResult>
An IQueryable<T> that has elements of type TResult obtained by performing an right outer join on two sequences.
Example
ctx.Departments.RightOuterJoin(ctx.Employees,
z => z.ID,
z => z.DepartmentID,
(department, employee) => new
{
Department = department.Name,
Employee = employee.Name,
})
FullOuterJoin
public static IQueryable<TResult> FullOuterJoin<TOuter, TInner, TKey, TResult>(this
IQueryable<TOuter> outer,
IQueryable<TInner> inner,
Expression<Func<TOuter, TKey>> outerKey,
Expression<Func<TInner, TKey>> innerKey,
Expression<Func<TOuter, TInner?, TResult>> resultSelector);
Type Parameters
TOuter
The type of the elements of the first sequence.
TInner
The type of the elements of the second sequence.
TKey
The type of the keys returned by the key selector functions.
TResult
The type of the result elements.
Parameters
outer
IQueryable<TOuter>
The first sequence to join.
inner
IQueryable<TInner>
The sequence to join to the first sequence.
outerKeySelector
Expression<Func<TOuter,TKey>>
A function to extract the join key from each element of the first sequence.
innerKeySelector
Expression<Func<TInner,TKey>>
A function to extract the join key from each element of the second sequence.
resultSelector
Expression<Func<TOuter,TInner,TResult>>
A function to create a result element from two matching elements.
Returns
IQueryable<TResult>
An IQueryable<T> that has elements of type TResult
obtained by performing an full outer join on two sequences.
Example
ctx.Departments.FullOuterJoin(ctx.Employees,
z => z.ID,
z => z.DepartmentID,
(department, employee) => new
{
Department = department.Name,
Employee = employee.Name,
})
class ExpressionExtensions {#ExpressionExtensions_ref}
Method | Description |
---|---|
Expression<Func<T2, T1, TResult>> SwitchParameters<T1, T2, TResult>(Expression<Func<T1, T2, TResult>> expression) | Translate the source to result expression by switch arguments |
Expression<Func<T, TResult>> SplitParameters<T1, T2, T, TResult>(this Expression<Func<T1, T2, TResult>> expression) | Translate source <paramref name="expression"/> with two arguments to expression with type where arguments are property of that type |
Expression<Func<T, TResult>> SplitParameters<T1, T2, T3, T, TResult>(this Expression<Func<T1, T2, T3, TResult>> expression) | Translate source <paramref name="expression"/> with two arguments to expression with type where arguments are property of that type |
Publication: Implementation of Left Outer Join for Entity Framework
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.