Commit 0c90c79
authored
Queryable support entity framework (#53)
* Initial EF6 test project, test and public ProjectTo extension method
* Building a Queryable.Select statement for queryable projection / Using singleton instances for stateless mapping expression factories
* Making mapping try - catch use ruleset-dependent
* Making source element null-checking ruleset-dependent
* Making use of member initialisation object creations ruleset-dependent
* Support for straightforward projection!
* Using a mapper-scoped projection MappingContext
* Extending basic projection test
* Start of simple type conversion test coverage
* Using ExpressionEvaluation for comparisons of fallback datasource values
* Reducing indirection in member population + size of IDataSource interface
* Moving MapperData property from MemberPopulation into DataSourceSet
* Support for string-to-bool projection with case-sensitive 'true' matching
* Replacing case-insensitive string.Equals with stirng.ToLower == in query projections
* Start of support for projecting to ints
* Test coverage for projecting longs to ints
* Adding Entity Framework 5 test project / Moving ORM tests to shared project
* Removing quoted lambda comments from mapping plans
* Giving up on attempting to get a working string -> int conversion for code-first EF5 and EF6
* Adding EFCore2 tests project / Moving test projects into 'Orms' namespace
* Extending EFCore2 test coverage
* Using ORM provider-specific settings to tweak query projections
* Organising QueryProvider settings classes / Start of test coverage for to-string conversions
* Switching test projects to unit test project types - nice icons :)
* Deferentiating between in-memory and local db ORM test contexts / EF5 integration tests project added to enable testing of SqlFunctions.StringConvert calls
* Genericising local db context / Switching to typed test contexts
* Simplifying bool -> string conversion / Test coverage for bool -> string projection
* Updating EF5 integration tests project assembly info
* Adding EfCore1 unit tests project
* Updating NuGet package versions
* Revert "Updating NuGet package versions"
This reverts commit 915a3f4.
* Updating NuGet package versions - 1
* Updating NuGet package versions - 2
* Updating NuGet package versions - 3
* Updating NuGet package versions - 4
* Consolidating NETStandard.Library package versions
* Support for string -> DateTime conversion / Adding EF6 integration tests project
* Reusing EF5 and EF6 unit test classes in corresponding integration test projects
* Removing Shouldly package where not needed
* Fixing date time integration tests
* Test coverage for in-memory EF5 and EF6 string -> datetime conversion
* Handling null strings in string -> datetime conversions
* Moving integration test projects to UnitTests.*.*LocalDb
* Guarding string -> DateTime projection in EF5 + EF6 using SqlFunctions.IsDate
* Adding Include() wrappers to IDbSetWrapper
* Support for passing a particular mapper to a projection / Start of test coverage for projection mapper caching
* Test coverage for a simple flattening projection / Maintaining member population order when mapping to member binndings
* Test coverage for simple navigation property mapping in EF5 + EF6 / Short-circuiting default expression conversion for non-value types
* Skipping projection null-member guarding as it's handled by the provider!
* Support for string -> Guid projection in EF Core
* Handling null strings in EF Core string -> Guid projections
* Tidying
* Reorganising DateTime projection tests to get clear test names
* Reorganising guid projection tests to get clearer test names
* Organising string -> int projection tests to get clear test names
* Reorganising simple type projection tests to use generic interfaces
* Test coverage for -> double projection
* Simplifying complex type member projection test / Start of collection member support
* Complex type enumerable member projection - working in EF6, EF5 can't use ToList(), EF Core can't use AsQueryable()
* Comple type enumerable member projection supported in EF6 + EF Core, EF5 can't use ToList
* Reverting element mapping data creation check
* Removing pointless type argument from simple type conversion test interfaces
* Introducing collection projection test interfaces as EF5 just can't do ToList
* Test coverage for projecting to a nested complex type Enumerable - EF Core 1+ 2 covered
* Support for projecting to IEnumerables - Ef5 + EF6 passing tests
* Excluding mapping plan comments from non mapping plan expressions / All-ORM test coverage for projecting to unmapped members
* Support for generating projection mapping plans!
* Fixing projection mapping plan caching
* Generating query provider type-specific mapping plans
* Test coverage for projection query mapping plan caching in EF Core 1
* Updating query projection plan caching to use an example IQueryable instance and a dedicated GetPlanForProjecting() method instead of having the user explicitly supply the IQueryProvider / Mapping plan viewing and caching tests passing for all EF versions
* Test coverage for inclusion of query projection mapping plans in result of GetPlansInCache()
* Updating to latest version of System.Security.Cryptography.X509Certificates
* Updating to latest version of System.Security.Cryptography.Algorithms
* Updating to latest version of System.Net.Http
* Updating to latest version of xunit.analyzers
* Updating to latest version of Microsoft.NETCore.Platforms
* Extending use of Expression.GetConversionTo<T>()
* Support for projecting types with one-to-one circular relationships - EF Core 2 test passing / Extending use of NetStandardPolyfills GetPublicInstanceMethod
* Test coverage for one-to-one circular relationship projection in EF Core 1, Ef5 + EF6
* Test coverage for one-to-many circular relationship projection - EF Core 1 + 2 tests passing, EF5 + EF6 not
* Using GetValueOrDefault and skipping null check when mapping from nullable T to T
* Populating short-circuited recursive members with empty collections - working in EF Core, not in EF 5 + 6
* Organising query projection converters
* Moving recursion management into a rule set strategy / Fixing EF5 local DB int -> ToString projection
* Updating EF5 + EF6 tests to expect failure projecting a one-to-many recursive relationship
* Simplifying projection recursion strategy
* Updating to NetStandardPolyfills v1.2.1
* Adding Queryable.Linq package to .NET Standard 1.3 target / Readding missing file
* Updating project description
* Differentiating between GetNewInstanceCreation and GetEmptyInstanceCreation for enumerables / Reusing EnumerableTypeHelper when creating empty enumerable instances where possible
* Organising one-to-many circular references test
* Removing Shouldly use from ORM tests
* Switching to typed-Queryable Project().To() extension method to support typed configuration
* Start of support for inline query projection configuration
* Fixing conversion of GetValueOrDefault() calls for EF5 + EF6 / Start of support for depth-specific recursive member projection
* Updating project-to-complex-type-member ORM tests to actually project to a complex type member / Adding in-query null checks to nested complex type members
* Conditionally populating complex type members in EF Core based on sibling member id value, re: bug comparing navigation properties to null
* Fixing complex type null-checking in ORM tests
* Ensuring nested enumerables are materialised where possible / Optimising ExpressionExtensions initialisation
* Tidying
* EF Core 2 test coverage for projection to 2nd-recursion-depth / EF Core 1 test coverage for projection to 1st and 2nd recursion depth
* Organising enumerable member projection tests
* Test coverage for entity flattening projection
* Updating ORM tests to async, switching to async operations where available
* Test coverage for default recursive projection behaviour / Completing ORM tests' async conversion
* Removing explicit zeroeth-depth ORM recursion tests
* Start of ORM configuration tests
* Moving mapper specification from To() to Project()
* Constant value configuration tests for EFCore1, EF5 and EF6
* Support for conditional configured data sources in query projection
* Replacing projection mapper specifier with ProjectUsing() method
* Test coverage for mapping a configured constant to a nested projection result member
* Support for configuring custom source members for query projections
* Support for projection-specific config continuations in projection configuration
* Test coverage for conditional custom source members in projections
* Test coverage for alternative custom data sources when projecting
* Removing conversion of DefaultExpressions to constants where ORM supports DefaultExpressions / Fixing MapFunc() implementation
* Test coverage for mapper divergence in projection
* Expanding custom data source test coverage / Providing a workaround for EF5 + EF6 not supporting all primitive constants
* Adding EFCore2.NetCore2 test project / Organising EFCore test project version number sharing
* Start of support for configuring projection member ignores
* Skipping EFCore complex type to null comparison conversions when there's no complex type id available
* Start of conditional projection ignore support
* Support for conditional projection result member ignores
* Support for PropertyInfo match ignores in projections
* Support for ignoring target members by type in projections / Extending ignore member tests to EF5, EF6 + Ef Core 1
* Refactoring member population expression generation into ruleset-specific class, replacing population guarding strategies
* Filtering get- and set-method use out of query projections
* Test coverage for projecting to structs with an explicit constructor
* Start of support for configuring projection constructor parameters by type / Organising custom projection data source tests
* Support for configuring projection constructor parameters by name
* Start of projection enum pairing / Organising projection configuration API interfaces / Support for using string operators to map to bools and enums
* Ensuring string constant values are converted to lower case when converting ignore case string comparisons / Extending test enum-pairing coverage to EF5, EF6 + EF Core 1 / Tweaking DbSetWrapper implementations
* Start of projection validation support + tests
* Test coverage for projection unmapped member validation
* Start to to-enum conversion tests + support
* Extending stirng-to-enum projection test coverage
* Supporting EF5 + EF6 Canonical and Sql Functions in .NET Standard
* Support for converting strings to enums in EF6 + EF5 / Adding legacy EF base settings class
* Extending mapping validation test coverage
* Start of support for derived types configuration
* Refactoring derived type mapping projection
* Expanding derived type test coverage
* Support for projecting source types which have derived types / Support for creation of mappers and projectors for the same types
* Support for cached query projectors and mappers in the same mapper
* Extending derived type testing
* Ignoring configured callbacks when projecting / Reinstating converting default expressions to null constants as EF Core doesn't implement comparing default expressions
* Expanding projections + callbacks tests
* Moving callback tests to EFCore-only / Test coverage for object tracking + projection
* Start of support for custom object factories in projections
* Support for custom factories for projections of objects of a specified type
* Test coverage for conditional object factories in projections
* Expanding test coverage for custom projection object factories
* Support for configurable project to null conditions
* Increasing use of RunTest(context, mapper ) overload
* Extending test coverage for project-to-null configuration
* Start of string-formatting projection tests
* Support for DateTime -> String conversion
* Support for configured string formatting
* Test coverage + support for decimal -> formatted string projection
* Test coverage for double -> string projections
* Test coverage for decimal -> int, double -> int and double -> string projection
* Test coverage for projection with global exception swalling configured
* Test coverage for projection use of custom name matching patterns
* Test coverage for inline-configured custom constructor data sources
* Test coverage for inline member data source configuration
* Extending test coverage for inline data source configuration / Support for switching configuration types inline in projections
* Test coverage + support for inline-validated projections
* Test coverage and support for 'continued' inline configuration / Test coverage for inline configuration of decimal -> string formatting
* Extending inline projection configuration test coverage
* Support for inline projection naming patterns / Test coverage for configured map-to-null projections
* Organising project-to-enumerable tests
* Differentiating assembly-loading in .NET Standard
* Test coverage for projection via a linking type in Ef Core 1+ 2
* Test coverage for projection via a linking type in EF5 + EF61 parent 6beb151 commit 0c90c79
File tree
437 files changed
+14516
-1593
lines changed- AgileMapper.UnitTests.MoreTestClasses
- AgileMapper.UnitTests.NetCore2
- AgileMapper.UnitTests.NonParallel
- AgileMapper.UnitTests.Orms.EFCore2.NetCore2
- AgileMapper.UnitTests.Orms.Ef5.LocalDb
- Configuration
- Infrastructure
- Properties
- SimpleTypeConversion
- AgileMapper.UnitTests.Orms.Ef5
- Configuration
- Inline
- Infrastructure
- Properties
- Recursion
- SimpleTypeConversion
- AgileMapper.UnitTests.Orms.Ef6.LocalDb
- Infrastructure
- Properties
- SimpleTypeConversion
- AgileMapper.UnitTests.Orms.Ef6
- Configuration
- Inline
- Infrastructure
- Properties
- Recursion
- SimpleTypeConversion
- AgileMapper.UnitTests.Orms.EfCore1
- Configuration
- Inline
- Infrastructure
- Properties
- Recursion
- SimpleTypeConversion
- AgileMapper.UnitTests.Orms.EfCore2
- Configuration
- Inline
- Infrastructure
- Properties
- Recursion
- SimpleTypeConversion
- AgileMapper.UnitTests.Orms
- Configuration
- Inline
- Infrastructure
- Properties
- Recursion
- SimpleTypeConversion
- TestClasses
- AgileMapper.UnitTests
- Configuration
- Extensions/Internal
- AgileMapper
- Api
- Configuration
- Projection
- Configuration
- Inline
- Projection
- DataSources
- Extensions/Internal
- Members
- Population
- ObjectPopulation
- ComplexTypes
- Enumerables
- Dictionaries
- Recursion
- Plans
- Properties
- Queryables
- Api
- Converters
- Recursion
- Settings
- EntityFramework
- TypeConversion
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
437 files changed
+14516
-1593
lines changedLines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
10 | 14 | | |
Lines changed: 26 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
Lines changed: 4 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
17 | 20 | | |
18 | 21 | | |
19 | 22 | | |
| |||
100 | 103 | | |
101 | 104 | | |
102 | 105 | | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
Lines changed: 71 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
Lines changed: 116 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
Lines changed: 24 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
0 commit comments