Comparing Database Objects
Database object can either be compared in SQL
WHERE
clauses or in programming code. In SQL queries database objects can be compared either by the equals
=
operator or by the ObjectNo
value. The direct comparison is always preferable.var products = Db.SQL<Product>(
"SELECT p FROM Product p WHERE p.Customer = ?", customer);
var products = Db.SQL<Product>(
"SELECT p FROM Product p WHERE p.Customer.ObjectNo = ?",
customer.GetObjectNo());
Two instances of a database class can be compared either with the
Object.Equals
method or with the ObjectNo
value. The Object.Equals
method is the preferable way.var firstProduct = new Product();
var secondProduct = new Product();
var anotherFirstProduct = Db.FromId(firstProduct.GetObjectNo());
firstProduct.Equals(secondProduct); // false
firstProduct.GetObjectNo() == secondProduct.GetObjectNo(); // false
firstProduct.Equals(anotherFirstProduct); // true
firstProduct.GetObjectNo() == anotherFirstProduct.GetObjectNo(); // true
The equals
==
operator and the Object.ReferenceEquals
method will always return false
when comparing database objects.Last modified 4yr ago