Exemplo n.º 1
0
        public void SaveWith2Tables()
        {
            var s1 = new Schedule2Tables(1
                                         , "織田信長"
                                         , new DateTime(1534, 6, 23)
                                         , 160.34M
                                         , 50M
                                         , false
                                         , "天下布武"
                                         , new DateTime(1571, 9, 30, 00, 00, 0)
                                         , "叡山焼き討ち");

            using (var t1 = _db.CreateTran()) {
                Assert.That(t1.Save(s1), Is.EqualTo(1));
                Assert.That(t1.LastExecutedSql,
                            Is.EqualTo("INSERT INTO Schedules(id,date,subject)" +
                                       " VALUES(1,'1571-09-30'," + N + "'叡山焼き討ち')"));
                Assert.That(t1.Delete(s1), Is.EqualTo(1));

                /* UPDATE/DELETE文のFROM句が記述できるDBMSは限られているため、WHERE句の付加においては
                 * FROM句がないという前提で処理をしている*/
                Assert.That(t1.LastExecutedSql,
                            Is.EqualTo("DELETE FROM Schedules FROM Persons " +
                                       "WHERE Schedules.id=1 AND Schedules.date='1571-09-30' AND Schedules.subject=" + N + "'叡山焼き討ち' AND " +
                                       "EXISTS(SELECT 1 FROM" + Environment.NewLine + "(SELECT P.id AS Id,P.name AS Name," +
                                       "P.birthDay AS BirthDay,P.height AS Height,P.weight AS Weight,P.isDaimyou AS IsDaimyou," +
                                       "P.remarks AS Remarks,S_." + Environment.NewLine + "date AS \"Date\",S_.subject AS Subject," +
                                       "S_.id AS S__id_ FROM Persons P LEFT JOIN Schedules S_ ON P.id=S_.id)V0_ " +
                                       "WHERE Name=" + N + "'織田信長' AND BirthDay=" + Environment.NewLine + "'1534-06-23' AND Height=160.34 AND " +
                                       "Weight=50 AND IsDaimyou=0 AND Remarks=" + N + "'天下布武' AND V0_.Date=Schedules.date AND V0_.S__id_=Schedules.id)"));
            }
        }
Exemplo n.º 2
0
    public override bool Equals(object obj)
    {
        if (!(obj is Schedule2Tables))
        {
            return(false);
        }
        Schedule2Tables schedule = (Schedule2Tables)obj;

        //HasValue=FalseなNull許容型同士を比較するとnullになるので、Trueになるように一致条件を工夫した
        if (this.Id == schedule.Id)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }