public void CanDefineDateTimeAndTimestampWithIdentity()
        {
            ReInitDb();
            if (Version < new Version(5, 6))
            {
                return;
            }

            using (var db = new ProductsDbContext())
            {
                //db.Database.CreateIfNotExists();
                db.Database.Initialize(true);
                Product product = new Product
                {
                    //Omitting Identity Columns
                    DateTimeWithPrecision  = DateTime.Now,
                    TimeStampWithPrecision = DateTime.Now
                };

                db.Products.Add(product);
                db.SaveChanges();

                var updateProduct = db.Products.First();
                updateProduct.DateTimeWithPrecision = new DateTime(2012, 3, 18, 23, 9, 7, 6);
                db.SaveChanges();

                Assert.AreNotEqual(null, db.Products.First().Timestamp);
                Assert.AreNotEqual(null, db.Products.First().DateCreated);
                Assert.AreEqual(new DateTime(2012, 3, 18, 23, 9, 7, 6), db.Products.First().DateTimeWithPrecision);
                Assert.AreEqual(1, db.Products.Count());

                db.Database.Delete();
            }
        }
        public void CanDefineDatesWithPrecisionFor56()
        {
            if (Version < new Version(5, 6))
            {
                return;
            }

            using (var db = new ProductsDbContext())
            {
                db.Database.CreateIfNotExists();
                using (MySqlConnection conn = new MySqlConnection(db.Database.Connection.ConnectionString))
                {
                    conn.Open();
                    MySqlCommand query = new MySqlCommand("Select Column_name, Is_Nullable, Data_Type, DateTime_Precision from information_schema.Columns where table_schema ='" + conn.Database + "' and table_name = 'Products' and column_name ='DateTimeWithPrecision'", conn);
                    query.Connection = conn;
                    MySqlDataReader reader = query.ExecuteReader();
                    while (reader.Read())
                    {
                        Assert.AreEqual("DateTimeWithPrecision", reader[0].ToString());
                        Assert.AreEqual("NO", reader[1].ToString());
                        Assert.AreEqual("datetime", reader[2].ToString());
                        Assert.AreEqual("3", reader[3].ToString());
                    }
                    reader.Close();

                    query            = new MySqlCommand("Select Column_name, Is_Nullable, Data_Type, DateTime_Precision from information_schema.Columns where table_schema ='" + conn.Database + "' and table_name = 'Products' and column_name ='TimeStampWithPrecision'", conn);
                    query.Connection = conn;
                    reader           = query.ExecuteReader();
                    while (reader.Read())
                    {
                        Assert.AreEqual("TimeStampWithPrecision", reader[0].ToString());
                        Assert.AreEqual("NO", reader[1].ToString());
                        Assert.AreEqual("timestamp", reader[2].ToString());
                        Assert.AreEqual("3", reader[3].ToString());
                    }
                    reader.Close();
                }
                db.Database.Delete();
            }
        }