public override bool Equals(object obj) { if (!(obj is PersonAutoWhereFalse)) { return(false); } PersonAutoWhereFalse PersonAutoWhereFalse = (PersonAutoWhereFalse)obj; //HasValue=FalseなNull許容型同士を比較するとnullになるので、Trueになるように一致条件を工夫した if ((this.Id == PersonAutoWhereFalse.Id || (!this.IsDaimyou.HasValue && !PersonAutoWhereFalse.IsDaimyou.HasValue)) && this.Name == PersonAutoWhereFalse.Name && this.BirthDay == PersonAutoWhereFalse.BirthDay && this.Height == PersonAutoWhereFalse.Height && (this.Weight == PersonAutoWhereFalse.Weight || (!this.Weight.HasValue && !PersonAutoWhereFalse.Weight.HasValue)) && (this.IsDaimyou == PersonAutoWhereFalse.IsDaimyou || (!this.IsDaimyou.HasValue && !PersonAutoWhereFalse.IsDaimyou.HasValue)) && this.Remarks == PersonAutoWhereFalse.Remarks) { return(true); } else { return(false); } }
public void AutoWhereFalse() { using (var tran = _db.CreateTran()) { var record = new PersonAutoWhereFalse(12, "足利義満", new DateTime(1358, 9, 25), 160, 60, false, "金閣寺"); Assert.That(tran.Delete(record), Is.EqualTo(3)); Assert.That(tran.Save(record), Is.EqualTo(1)); Assert.That(tran.LastExecutedSql, Is.EqualTo("INSERT INTO Persons(id,name,birthDay,height,weight,isDaimyou,remarks) " + "VALUES(12," + N + "'足利義満','1358-09-25',160,60,0," + N + "'金閣寺')")); Assert.That(tran.Save(record), Is.EqualTo(1)); Assert.That(tran.LastExecutedSql, Is.EqualTo("UPDATE Persons SET name=" + N + "'足利義満',birthDay='1358-09-25'," + "height=160,weight=60,isDaimyou=0,remarks=" + N + "'金閣寺'")); var placeHolders = new Dictionary <string, string>() { { "Id", "12" } }; var p1 = tran.FindOne(record, placeHolders); Assert.That(p1, Is.EqualTo(record)); Assert.That(tran.LastExecutedSql, Is.EqualTo("SELECT * FROM (SELECT id AS Id,name AS Name,birthDay AS BirthDay," + "height AS Height,weight AS Weight,isDaimyou AS IsDaimyou,remarks AS Remarks" + Environment.NewLine + "FROM Persons WHERE Id=12)V0_")); Assert.That(tran.Delete(record), Is.EqualTo(1)); Assert.That(tran.LastExecutedSql, Is.EqualTo("DELETE FROM Persons")); } }