public void Issue533Test([DataSources] string context) { ResetPersonIdentity(context); var ms = new MappingSchema(); ms.SetConverter <MyString, string?>((obj) => { if (obj == null) { return(null); } return(obj.Value); }); ms.SetConverter <MyString, DataParameter>((obj) => { if (obj == null) { return new DataParameter { DataType = DataType.NVarChar } } ; return(new DataParameter { Value = obj.Value, DataType = DataType.NVarChar }); }); ms.SetConverter <string, MyString?>((txt) => { if (string.IsNullOrEmpty(txt)) { return(null); } return(new MyString { Value = txt }); }); using (var db = GetDataContext(context, ms)) using (new RestoreBaseTables(db)) { var obj = new Entity533 { FirstName = new MyString { Value = "FirstName533" }, LastName = new MyString { Value = "LastName533" }, }; int id; id = db.InsertWithInt32Identity(obj); var obj2 = db.GetTable <Entity533>().First(_ => _.ID == id); Assert.IsNull(obj2.MiddleName); Assert.AreEqual(obj.FirstName.Value, obj2.FirstName.Value); } }
public void Issue693Test([DataSources] string context) { var ms = new MappingSchema(); ms.SetConverter <Test?, string>((obj) => { if (obj != null) { return(obj.ToString()); } return(null); }); ms.SetConverter <Test?, DataParameter>((obj) => { if (obj != null) { return new DataParameter { Value = obj.ToString() } } ; return(new DataParameter { Value = DBNull.Value }); }); ms.SetConverter <string, Test?>((txt) => { if (string.IsNullOrEmpty(txt)) { return(null); } return((Test?)Enum.Parse(typeof(Test), txt, true)); }); using (var db = GetDataContext(context, ms)) using (new DeletePerson(db)) { var obj = new Entity533 { FirstName = "a", MiddleName = Test.A, LastName = "b", Gender = Gender.Male }; var id1 = Convert.ToInt32(db.InsertWithIdentity(obj)); var obj2 = new Entity533 { FirstName = "c", MiddleName = null, LastName = "d", Gender = Gender.Male }; var id2 = Convert.ToInt32(db.InsertWithIdentity(obj2)); var obj3 = db.GetTable <Entity533>().First(_ => _.ID == id1); var obj4 = db.GetTable <Entity533>().First(_ => _.ID == id2); Assert.IsNull(obj4.MiddleName); Assert.NotNull(obj3.MiddleName); } }
public void Issue533Test(string context) { var ms = new MappingSchema(); ms.SetConverter <MyString, string>((obj) => { if (obj == null) { return(null); } return(obj.Value); }); MappingSchema.Default.SetConverter <MyString, DataParameter>((obj) => { if (obj == null) { return new DataParameter { DataType = DataType.NVarChar } } ; return(new DataParameter { Value = obj.Value, DataType = DataType.NVarChar }); }); MappingSchema.Default.SetConverter <string, MyString>((txt) => { if (string.IsNullOrEmpty(txt)) { return(null); } return(new MyString { Value = txt }); }); using (var db = GetDataContext(context)) { try { var obj = new Entity533 { FirstName = new MyString { Value = "FirstName533" }, LastName = new MyString { Value = "LastName533" }, }; var id1 = Convert.ToInt32(db.InsertWithIdentity(obj)); var obj2 = db.GetTable <Entity533>().First(_ => _.ID == id1); Assert.IsNull(obj2.MiddleName); Assert.AreEqual(obj.FirstName.Value, obj2.FirstName.Value); } finally { db.Person.Delete(_ => _.ID > MaxPersonID); } } }