NHibernate 'te composite id kullanımı hakkında bir sorum olacak.
Composite Id'lerin bulunduğu class içerisinde neden System.Object sınıfının metodları olan Equals() ve GetHashCode() metodlarını override etmek durumunda kalıyoruz?
public class EmployeeTerritories
{
private Employees employeeId;
private Territories territoryId;
public virtual Employees EmployeeID
{
get { return employeeId; }
set { employeeId = value; }
}
public virtual Territories TerritoryID
{
get { return territoryId; }
set { territoryId = value; }
}
public override int GetHashCode()
{
int hashCode = 0;
hashCode = hashCode ^ EmployeeID.GetHashCode() ^ TerritoryID.GetHashCode();
return hashCode;
}
public override bool Equals(object obj)
{
var toCompare = obj as EmployeeTerritories;
if(toCompare == null)
{
return false;
}
return (this.GetHashCode() != toCompare.GetHashCode());
}
}
Saygılarımla.
--
İlgiz SEBER
Software Developer
Karash Software & Security Technologies
Mobile:
+90 533 2819232Phone:
+90 216 3262501
Fax:
+90 216 3261607