Exemplo n.º 1
0
    public override bool Equals(object obj)
    {
        if (!(obj is PersonDefaultPH))
        {
            return(false);
        }
        PersonDefaultPH person = (PersonDefaultPH)obj;

        //HasValue=FalseなNull許容型同士を比較するとnullになるので、Trueになるように一致条件を工夫した
        if ((this.Id == person.Id ||
             (!this.IsDaimyou.HasValue && !person.IsDaimyou.HasValue)) &&
            this.Name == person.Name &&
            this.BirthDay == person.BirthDay &&
            this.Height == person.Height &&
            (this.Weight == person.Weight || (!this.Weight.HasValue && !person.Weight.HasValue)) &&
            (this.IsDaimyou == person.IsDaimyou || (!this.IsDaimyou.HasValue && !person.IsDaimyou.HasValue)) &&
            this.Remarks == person.Remarks)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
Exemplo n.º 2
0
        public void DefaultPlaceHolders()
        {
            using (var tran = _db.CreateTran()) {
                // PlaceHolder初期値よりレコード値を優先する
                var record = new PersonDefaultPH(14, "", new DateTime(0001, 1, 1), decimal.MinValue, 85M, false, "遅参");
                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(14,NULL,NULL,NULL,85,0," + N + "'遅参')"));

                // レコード値やPlaceHolder値の指定がなければPlaceHolder初期値が設定される
                Assert.That(tran.Call("save2", new Query <PersonDefaultPH>()), Is.EqualTo(1));
                Assert.That(tran.LastExecutedSql,
                            Is.EqualTo("INSERT INTO Persons(id,name,birthDay,height,weight,isDaimyou,remarks) " +
                                       "VALUES(5," + N + "'德川秀忠','1610-04-04',177,90,1," + N + "'二代将軍')"));
            }
        }