Giter Site home page Giter Site logo

Comments (6)

TylerCarlson1 avatar TylerCarlson1 commented on July 4, 2024

Hmm I don't know. I don't think this is a problem anywhere. The real problem is when property maps are not null in the auto generated ones, but you don't use them.

from automapper.collection.

rizi avatar rizi commented on July 4, 2024

@TylerCarlson1 I think it can be a problem because wenn encountered it in a real life application, where the key can be null. And If its null we get a null reference exception we can not handle because it happens in the GetHashcode call. I think its worth the check or at least dont call GetHashcode in that case( If its possible)

from automapper.collection.

TylerCarlson1 avatar TylerCarlson1 commented on July 4, 2024

Re-looking at this, what would be the best option? Make expression list empty if anything is null, or make the hash code default to 0 in these null cases? I would think it wouldn't have much impact because comparison will happen afterward to confirm they are equal even if they get grouped together.

Also brings up another point. If both properties are null should they be equivalent to each other, or should they not be?

from automapper.collection.

rizi avatar rizi commented on July 4, 2024

@TylerCarlson1 If a property is null I would use 0 for the hash code(r# is doing the same when generating equals/hashcode implementations).
If both properties are null --> hash code will be 0 --> they are equivalent --> and then the comparison will decide. what do you think?

from automapper.collection.

Tasteful avatar Tasteful commented on July 4, 2024

I think we can return 0 for the GetHashCode(), I think if all the source properties is null we should treat that as a new item and add a new row into the destination collection without try to find if that row already exists. Otherwise if 2 new items are added but all the key-properties is null the destination will only have one item.

from automapper.collection.

TylerCarlson1 avatar TylerCarlson1 commented on July 4, 2024

That should be fine making GetHashCode() equal 0 then if null. I will double check on that making them separate HashSets, because I think if you add 2 or more with ID = 0 they both get added, so adding this null logic shouldn't make any difference.

from automapper.collection.

Related Issues (20)

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.