public async Task Guid_Arg() { var db = new MightyOrm(TestConstants.ReadWriteTestConnection); var guid = Guid.NewGuid(); dynamic item; using (var command = db.CreateCommand("SELECT @0 AS val", null, guid)) { #if NETCOREAPP // For some reason .NET Core provider doesn't have DbType.Guid support even though .NET Framework provider does Assert.AreEqual(DbType.String, command.Parameters[0].DbType); #else Assert.AreEqual(DbType.Guid, command.Parameters[0].DbType); #endif item = await db.SingleAsync(command); } // The output from the provider is a bunch of bytes either way, so we stick with the provider // default here (especially since it is the same in both cases). #if NETCOREAPP2_0 || NETCOREAPP3_0 || NETCOREAPP3_1 // This changed from `byte[]` to `string` somewhere between System.Data.SQLite 1.0.105 and 1.0.111 Assert.AreEqual(typeof(string), item.val.GetType()); #else Assert.AreEqual(typeof(byte[]), item.val.GetType()); #endif Assert.AreEqual(guid, new Guid(item.val)); }
public async Task Guid_Arg() { // PostgreSQL has true Guid type support var db = new MightyOrm(TestConstants.ReadWriteTestConnection); var guid = Guid.NewGuid(); dynamic item; using (var command = db.CreateCommand("SELECT @0 AS val", null, guid)) { Assert.AreEqual(DbType.Guid, command.Parameters[0].DbType); item = await db.SingleAsync(command); } Assert.AreEqual(guid, item.val); }
public void Guid_Arg() { // SQL Server has true Guid type support var db = new MightyOrm(TestConstants.ReadTestConnection); var guid = Guid.NewGuid(); dynamic item; using (var command = db.CreateCommand("SELECT @0 AS val", null, guid)) { Assert.AreEqual(DbType.Guid, command.Parameters[0].DbType); item = db.Single(command); } Assert.AreEqual(guid, item.val); }
public void Guid_Arg() { // PostgreSQL has true Guid type support var db = new MightyOrm(string.Format(TestConstants.ReadWriteTestConnection, TestConstants.ProviderName)); var guid = Guid.NewGuid(); dynamic item; using (var command = db.CreateCommand("SELECT @0 AS val", null, guid)) { Assert.AreEqual(DbType.Guid, command.Parameters[0].DbType); item = db.Single(command); } Assert.AreEqual(guid, item.val); }
public async Task Guid_Arg() { // MySQL has native Guid parameter support, but the SELECT output is a string var db = new MightyOrm(WhenDevart.AddLicenseKey(ProviderName, string.Format(TestConstants.ReadTestConnection, ProviderName))); var guid = Guid.NewGuid(); dynamic item; using (var command = db.CreateCommand("SELECT @0 AS val", null, guid)) { Assert.AreEqual(DbType.Guid, command.Parameters[0].DbType); item = await db.SingleAsync(command); } Assert.AreEqual(typeof(string), item.val.GetType()); Assert.AreEqual(guid, new Guid(item.val)); }
public void Guid_Arg() { var db = new MightyOrm(TestConstants.ReadWriteTestConnection); var guid = Guid.NewGuid(); dynamic item; using (var command = db.CreateCommand("SELECT @0 AS val", null, guid)) { #if NETCOREAPP // For some reason .NET Core provider doesn't have DbType.Guid support even though .NET Framework provider does Assert.AreEqual(DbType.String, command.Parameters[0].DbType); #else Assert.AreEqual(DbType.Guid, command.Parameters[0].DbType); #endif item = db.Single(command); } // The output from the provider is a bunch of bytes either way, so we stick with the provider // default here (especially since it is the same in both cases). Assert.AreEqual(typeof(byte[]), item.val.GetType()); Assert.AreEqual(guid, new Guid(item.val)); }