# EntityFrameworkCore.Extensions **Repository Path**: soul-au/EntityFrameworkCore.Extensions ## Basic Information - **Project Name**: EntityFrameworkCore.Extensions - **Description**: No description available - **Primary Language**: C# - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-05-05 - **Last Updated**: 2022-05-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EntityFrameworkCore.Extensions ## 说明 该框架共用EFCore的模型约定,内置高性能的表达式树解析方案,将解析好的sql交给dapper查询。进而获得超高的开发效率和性能 ## 类型推断 ``` C# //方式一 var list1 = context.Queryable() .On((a, b) => new JoinArray ( JoinType.Left, a.ClassId == b.Id )) .ToList(); //方式二 var list2 = context.Queryable(context.Students,context.StudentClass) .On((a, b) => new JoinArray ( JoinType.Left, a.ClassId == b.Id )) .ToList(); ``` ## 多表链接 ``` C# var list1 = context.Queryable() .On((a, b) => new JoinArray ( JoinType.Left, a.ClassId == b.Id )) .Skip(1) .Take(1) .Select((a, b) => new { a.Name, Class = b.Name }); var list2 = context.Queryable() .On((a, b, c) => new JoinArray ( JoinType.Inner, a.ClassId == b.Id, JoinType.Left, a.GradeId == c.Id )) .Skip(1) .Take(1) .Select((a, b, c) => new { a.Name, Class = b.Name, c.Grade }); ``` ## 函数支持 ``` C# public class MyFunc { [SqlFunction] public static long Count(T column) { throw new NotImplementedException(); } } var list = context.Queryable() .GroupBy(a => a.Name) .Select(s => new { s.Name, Count = MyFunc.Count(s.Id) }); ```