public void FindWithUnion() { var query = new Query <PersonUnion>(); query.And(val.of("Id") == 0); using (var t1 = _db.CreateTran()) { var p1 = t1.FindOne(query); var comparison = new PersonUnion(0, "名無しの権兵衛", new DateTime(2001, 1, 1)); Assert.That(p1, Is.EqualTo(comparison)); Assert.That(t1.LastExecutedSql, Is.EqualTo("SELECT * FROM (SELECT id AS Id,name AS Name,birthDay AS " + "BirthDay FROM Persons UNION SELECT 0," + N + "'名無しの権兵衛'," + "'2001-01-01')V0_ WHERE Id=0")); } }
public override bool Equals(object obj) { if (!(obj is PersonUnion)) { return(false); } PersonUnion person = (PersonUnion)obj; //HasValue=FalseなNull許容型同士を比較するとnullになるので、Trueになるように一致条件を工夫した if (this.Id == person.Id && this.Name == person.Name && this.BirthDay == person.BirthDay) { return(true); } else { return(false); } }