Comments (10)
If you already have a working fix could you make a pull request for this?
And you have a failing test you can add it to Pull Request so that this issue gets checked on every build.
from automapper.collection.
Unfortunately it's not a fix for everyone. It's just something that's ok for now in our application. What I can do is add a failing test via pull request. What unit test runner do you use, I didn't find a Testclass or Testmethod ( or something similar) in your tests. Br
from automapper.collection.
When reading the code it looks like the equivalent expression always is found for the concrete type.
If we take this example of mapping
//collection type
cfg.CreateMap<OrderDomain, OrderEf>()
.EqualityComparison((oo, dto) => BaseEquals(oo, dto))
;
cfg.CreateMap<MailOrderDomain, MailOrderEf>()
.IncludeBase<OrderDomain, OrderEf>()
;
and try to find the IEquivalentComparer based on the MailOrderDomain
-> MailOrderEf
we will not get any hits back, even that the mapping is including a base-mapping that has the EqualityComparison
-set.
If I remember correctly I got the same issue in my project and without investigate why it happen, I added the EqualityComparison
on all sub-mappings and get it to work.
from automapper.collection.
@Tasteful can you try to fix the failing unit test in my uploaded solution? I already tried to put the .EqualityComparison() to all sub types and remove it from the base type but it never gets called for any subtype. br
from automapper.collection.
@Tasteful thx! But I dont know If IncludeBase is enough. What if someone uses .include<> instead of .IncludeBase<> because the mappins are created the other way round? Br
from automapper.collection.
@rizi I have never used the .Include<,>()
, will the mapping in that case be something like the following?
cfg.CreateMap<OrderDomain, OrderEf>()
.EqualityComparison((oo, dto) => BaseEquals(oo, dto))
.Include<MailOrderDomain, MailOrderEf>()
.Include<OnlineOrderDomain, OnlineOrderEf>()
;
cfg.CreateMap<OnlineOrderDomain, OnlineOrderEf>()
.EqualityComparison((ood, ooe) => DerivedEquals(ood, ooe))
;
cfg.CreateMap<MailOrderDomain, MailOrderEf>()
;
instead of
cfg.CreateMap<OrderDomain, OrderEf>()
.EqualityComparison((oo, dto) => BaseEquals(oo, dto))
;
cfg.CreateMap<OnlineOrderDomain, OnlineOrderEf>()
.EqualityComparison((ood, ooe) => DerivedEquals(ood, ooe))
.IncludeBase<OrderDomain, OrderEf>()
;
cfg.CreateMap<MailOrderDomain, MailOrderEf>()
.IncludeBase<OrderDomain, OrderEf>()
;
from automapper.collection.
@rizi Can you try with the pre-release on myget (https://www.myget.org/feed/automapperdev/package/nuget/AutoMapper.Collection) to see if that is solving your issue?
from automapper.collection.
@Tasteful, regarding the mapping that's exactly how it would look like, see: http://docs.automapper.org/en/stable/Mapping-inheritance.html
I will try the pre release as soon as possible (hopefully in the next few days)
Best regards
from automapper.collection.
@Tasteful I tried the pre-release package from your myget feed and ITS WORKING FINE!
THX
from automapper.collection.
@jbogard You can close this one also, package is published on nuget.
from automapper.collection.
Related Issues (20)
- Override GenerateEntityFrameworkPrimaryKeyPropertyMaps with EqualityComparison? HOT 2
- How to use Collections with Profile configuration? HOT 5
- When mapping Lists, if the DestinationType is added to a DataContext, automapper fails with an exception HOT 1
- How to use with a .Net 5 Web project and DI HOT 1
- EqualityComparison based on the index of item in collection
- Add support for AutoMapper 11.0.0 HOT 1
- Package version constraint violation with AutoMapper.Collection HOT 1
- Are nested lists supported?
- mapping foreign key
- EquivalentExpressionAddRemoveCollectionMapper should implement IObjectMapperInfo HOT 1
- Could not install on .NETFramework,Version=v4.8 HOT 2
- Support for AutoMapper v12 HOT 2
- Insert Master with details HOT 1
- DI cycles forever when calling AddCollectionMappers() twice HOT 3
- Collections with Automapper 12.0.1 doesn't work HOT 1
- Expression of type '<Type>' cannot be used for parameter of type '<OtherType>' of method 'Void Add(<OtherType>)' (Parameter 'arg0') HOT 3
- Attribute based EqualityComparison HOT 1
- Order of lists is not preserved during updates HOT 1
- Dependency Contraint HOT 1
- AutoMapper 13 support
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from automapper.collection.