// ======================================================================== // // Copyright (C) 2016-2017 MARC CHEVALDONNE // marc.chevaldonne.free.fr // // Module : Nounours.cs // Author : Marc Chevaldonné // Creation date : 2016-10-19 // // ======================================================================== using System; namespace ex_042_007_EF_CF_One_to_One_FluentAPI { /// /// Nounours est une classe POCO, i.e. Plain Old CLR Object. /// Elle a une relation 1-1 avec la classe CarnetDeSante via la propriété Carnet. /// public class Nounours { public Guid UniqueId { get; set; } public virtual CarnetDeSante Carnet { get; set; } public string Nom { get; set; } public DateTime DateDeNaissance { get; set; } public int NbPoils { get; set; } /// /// returns a hash code in order to use this class in hash table /// /// hash code public override int GetHashCode() { return Nom.GetHashCode(); } /// /// checks if the "right" object is equal to this Nounours or not /// /// the other object to be compared with this Nounours /// true if equals, false if not public override bool Equals(object right) { //check null if (object.ReferenceEquals(right, null)) { return false; } if (object.ReferenceEquals(this, right)) { return true; } if (this.GetType() != right.GetType()) { return false; } return this.Equals(right as Nounours); } /// /// checks if this Nounours is equal to the other Nounours /// /// the other Nounours to be compared with /// true if equals public bool Equals(Nounours other) { return (this.Nom.Equals(other.Nom) && this.DateDeNaissance == other.DateDeNaissance); } public override string ToString() { return $"{UniqueId}: {Nom} ({DateDeNaissance:dd/MM/yyyy}, {NbPoils} poils)"; } } }