Esempio n. 1
0
    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);
        }
    }
Esempio n. 2
0
        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"));
            }
        }