Skip to content
This repository was archived by the owner on Feb 15, 2021. It is now read-only.

Commit ed55ef6

Browse files
committed
Fix several issues with SQLite compatibility with NET46
1 parent f3581d8 commit ed55ef6

File tree

5 files changed

+87
-49
lines changed

5 files changed

+87
-49
lines changed

src/Unosquare.Labs.LiteLib/LiteDbContext.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
using Swan.Reflection;
1717
#if MONO
1818
using Mono.Data.Sqlite;
19+
#elif NET46
20+
using System.Data.SQLite;
1921
#else
2022
using Microsoft.Data.Sqlite;
2123
#endif
@@ -58,6 +60,8 @@ protected LiteDbContext(string databaseFilePath, bool enabledLog = true)
5860
var databaseExists = File.Exists(databaseFilePath);
5961
#if MONO
6062
Connection = new SqliteConnection($"URI=file:{databaseFilePath}");
63+
#elif NET46
64+
Connection = new SQLiteConnection($"URI=file:{databaseFilePath}");
6165
#else
6266
var builder = new SqliteConnectionStringBuilder
6367
{

src/Unosquare.Labs.LiteLib/Unosquare.Labs.LiteLib.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<PackageId>LiteLib</PackageId>
1010
<DebugType>Full</DebugType>
1111
<CodeAnalysisRuleSet>..\..\StyleCop.Analyzers.ruleset</CodeAnalysisRuleSet>
12-
<Version>0.14.3</Version>
12+
<Version>0.15.0</Version>
1313
<Authors>Unosquare</Authors>
1414
<Company>Unosquare</Company>
1515
<Copyright>Copyright (c) 2016-2017 Unosquare</Copyright>
@@ -20,6 +20,7 @@
2020
<PackageIconUrl>https://raw.githubusercontent.com/unosquare/litelib/master/litelib-logo.png</PackageIconUrl>
2121
<RepositoryType>git</RepositoryType>
2222
<PackageTags>orm sqlite dapper</PackageTags>
23+
<ContentSQLiteInteropFiles>true</ContentSQLiteInteropFiles>
2324
</PropertyGroup>
2425

2526
<ItemGroup>
@@ -28,12 +29,11 @@
2829
</PackageReference>
2930
<PackageReference Include="Dapper" Version="1.50.2" />
3031
<PackageReference Include="System.ComponentModel.Annotations" Version="4.4.0" />
31-
<PackageReference Include="Unosquare.Swan" Version="0.17.1" />
32+
<PackageReference Include="Unosquare.Swan" Version="0.18.0" />
3233
</ItemGroup>
3334

3435
<ItemGroup Condition=" '$(TargetFramework)' == 'net46' ">
35-
<PackageReference Include="Microsoft.Data.Sqlite" Version="1.0.1" />
36-
<PackageReference Include="SQLite" Version="3.13.0" />
36+
<PackageReference Include="System.Data.SQLite.Core" Version="1.0.106" />
3737
</ItemGroup>
3838

3939
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">

test/Unosquare.Labs.LiteLib.Tests/DbContextAsyncFixture.cs

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
1-
using Microsoft.Data.Sqlite;
2-
using NUnit.Framework;
1+
using NUnit.Framework;
32
using System.Linq;
43
using System.Threading.Tasks;
54
using Unosquare.Labs.LiteLib.Tests.Database;
65
using Unosquare.Labs.LiteLib.Tests.Helpers;
6+
#if NET46
7+
using System.Data.SQLite;
8+
#else
9+
using Microsoft.Data.Sqlite;
10+
#endif
711

812
namespace Unosquare.Labs.LiteLib.Tests
913
{
@@ -42,7 +46,7 @@ public async Task SelectWithParametersAsync()
4246

4347
// Selecting Data By name
4448
var selectingData =
45-
await context.Orders.SelectAsync("CustomerName = @CustomerName", new { CustomerName = "Peter" });
49+
await context.Orders.SelectAsync("CustomerName = @CustomerName", new {CustomerName = "Peter"});
4650

4751
foreach (var item in selectingData)
4852
{
@@ -63,7 +67,7 @@ public async Task SelectDataAsync()
6367

6468
// Selecting Data By name
6569
var selectingData =
66-
await context.Orders.SelectAsync("CustomerName = @CustomerName", new { CustomerName = "Peter" });
70+
await context.Orders.SelectAsync("CustomerName = @CustomerName", new {CustomerName = "Peter"});
6771

6872
foreach (var item in selectingData)
6973
{
@@ -123,7 +127,7 @@ public async Task DeletingAsyncWithParams()
123127
}
124128

125129
var deletedData =
126-
await context.Orders.DeleteAsync("CustomerName = @CustomerName", new { CustomerName = "Peter" });
130+
await context.Orders.DeleteAsync("CustomerName = @CustomerName", new {CustomerName = "Peter"});
127131
Assert.AreEqual(deletedData, TestHelper.DataSource.Count(x => x.CustomerName == "Peter"));
128132
}
129133
}
@@ -163,8 +167,11 @@ public async Task InsertAsyncUsingUnique_ThrowsSqliteException()
163167
{
164168
await context.Orders.InsertAsync(item);
165169
}
166-
170+
#if NET46
171+
Assert.ThrowsAsync<SQLiteException>(async () =>
172+
#else
167173
Assert.ThrowsAsync<SqliteException>(async () =>
174+
#endif
168175
{
169176
var newOrder = new Order
170177
{
@@ -173,6 +180,7 @@ public async Task InsertAsyncUsingUnique_ThrowsSqliteException()
173180
ShipperCity = "Atlanta",
174181
UniqueId = "1"
175182
};
183+
176184
await context.Orders.InsertAsync(newOrder);
177185
});
178186
}
@@ -183,7 +191,11 @@ public async Task InsertAsyncWithOutOfRangeString_ThrowsSqliteException()
183191
{
184192
using (var context = new TestDbContext(nameof(InsertAsyncWithOutOfRangeString_ThrowsSqliteException)))
185193
{
194+
#if NET46
195+
Assert.ThrowsAsync<SQLiteException>(async () =>
196+
#else
186197
Assert.ThrowsAsync<SqliteException>(async () =>
198+
#endif
187199
{
188200
await context.Orders.InsertAsync(new Order
189201
{
@@ -209,15 +221,17 @@ public async Task AsyncUpdateData()
209221
}
210222

211223
var list = await context.Orders.SelectAsync("CustomerName = @CustomerName",
212-
new { CustomerName = "John" });
224+
new {CustomerName = "John"});
225+
213226
foreach (var item in list)
214227
{
215228
item.ShipperCity = "Atlanta";
216229
await context.Orders.UpdateAsync(item);
217230
}
218231

219232
var updatedList =
220-
await context.Orders.SelectAsync("ShipperCity = @ShipperCity", new { ShipperCity = "Atlanta" });
233+
await context.Orders.SelectAsync("ShipperCity = @ShipperCity", new {ShipperCity = "Atlanta"});
234+
221235
foreach (var item in updatedList)
222236
{
223237
Assert.AreEqual("Atlanta", item.ShipperCity);
@@ -314,8 +328,9 @@ public async Task AsyncUpdateFromSetname()
314328
item.ShipperCity = "Atlanta";
315329
await context.UpdateAsync(item);
316330
}
331+
317332
var updatedItems =
318-
await context.Orders.SelectAsync("ShipperCity = @ShipperCity", new { ShipperCity = "Atlanta" });
333+
await context.Orders.SelectAsync("ShipperCity = @ShipperCity", new {ShipperCity = "Atlanta"});
319334
Assert.AreEqual(TestHelper.DataSource.Length, updatedItems.Count());
320335
}
321336
}
@@ -337,7 +352,7 @@ public async Task AsyncQueryData()
337352
await
338353
context.QueryAsync<Order>(
339354
$"{context.Orders.SelectDefinition} WHERE CustomerName = @CustomerName",
340-
new Order { CustomerName = "John" });
355+
new Order {CustomerName = "John"});
341356

342357
foreach (var item in selectedData)
343358
{

test/Unosquare.Labs.LiteLib.Tests/DbContextFixture.cs

Lines changed: 50 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
using Unosquare.Labs.LiteLib.Tests.Database;
66
using Unosquare.Labs.LiteLib.Tests.Helpers;
77
#if MONO
8-
using Mono.Data.Sqlite;
8+
using Mono.Data.Sqlite;
9+
#elif NET46
10+
using System.Data.SQLite;
911
#else
1012
using Microsoft.Data.Sqlite;
1113
#endif
@@ -48,7 +50,7 @@ public void SelectDataWithParameters()
4850
context.Orders.Insert(item);
4951
}
5052

51-
var entities = context.Orders.Select("CustomerName = @CustomerName", new { CustomerName = "John" });
53+
var entities = context.Orders.Select("CustomerName = @CustomerName", new {CustomerName = "John"});
5254
foreach (var item in entities)
5355
{
5456
Assert.AreEqual("John", item.CustomerName);
@@ -65,14 +67,17 @@ public void SelectWithBadParameters_ThrowsException()
6567
{
6668
context.Orders.Insert(item);
6769
}
68-
70+
#if NET46
71+
Assert.Throws<SQLiteException>(() =>
72+
#else
6973
Assert.Throws<SqliteException>(() =>
74+
#endif
7075
{
71-
var entities = context.Orders.Select("Customer = @CustomerName", new { CustomerName = "John" });
76+
var entities = context.Orders.Select("Customer = @CustomerName", new {CustomerName = "John"});
7277
});
7378
}
7479
}
75-
80+
7681
[Test]
7782
public void SelectingFirstOrDefault()
7883
{
@@ -119,7 +124,8 @@ public void DeletingUsingParams()
119124
context.Orders.Insert(item);
120125
}
121126

122-
var deletedData = context.Orders.Delete("CustomerName = @CustomerName", new { CustomerName = "Peter" });
127+
var deletedData =
128+
context.Orders.Delete("CustomerName = @CustomerName", new {CustomerName = "Peter"});
123129
Assert.AreEqual(deletedData, TestHelper.DataSource.Count(x => x.CustomerName == "Peter"));
124130
}
125131
}
@@ -134,8 +140,14 @@ public void DeletingUsingInvalidParams_TrhowsSqliteException()
134140
context.Orders.Insert(item);
135141
}
136142

137-
Assert.Throws<SqliteException>(() => {
138-
var deletedData = context.Orders.Delete("Customer = @CustomerName", new { CustomerName = "Peter" });
143+
#if NET46
144+
Assert.Throws<SQLiteException>(() =>
145+
#else
146+
Assert.Throws<SqliteException>(() =>
147+
#endif
148+
{
149+
var deletedData =
150+
context.Orders.Delete("Customer = @CustomerName", new {CustomerName = "Peter"});
139151
});
140152
}
141153
}
@@ -165,7 +177,11 @@ public void InsertUsingUnique_ThrowsSqliteException()
165177
context.Orders.Insert(item);
166178
}
167179

168-
Assert.Throws<SqliteException>(delegate
180+
#if NET46
181+
Assert.Throws<SQLiteException>(() =>
182+
#else
183+
Assert.Throws<SqliteException>(() =>
184+
#endif
169185
{
170186
var newOrder = new Order
171187
{
@@ -178,13 +194,17 @@ public void InsertUsingUnique_ThrowsSqliteException()
178194
});
179195
}
180196
}
181-
197+
182198
[Test]
183199
public void InsertingWithOutOfRangeString_ThrowsSqliteException()
184200
{
185201
using (var context = new TestDbContext(nameof(InsertingWithOutOfRangeString_ThrowsSqliteException)))
186202
{
187-
Assert.Throws<SqliteException>(delegate
203+
#if NET46
204+
Assert.Throws<SQLiteException>(() =>
205+
#else
206+
Assert.Throws<SqliteException>(() =>
207+
#endif
188208
{
189209
context.Orders.Insert(new Order
190210
{
@@ -213,7 +233,7 @@ public void InsertingDataList()
213233
[Test]
214234
public void InsertingEmptyDataList_TrhowsArgumentException()
215235
{
216-
Assert.Throws(typeof(ArgumentNullException), () =>
236+
Assert.Throws<ArgumentNullException>(() =>
217237
{
218238
using (var context = new TestDbContext(nameof(InsertingEmptyDataList_TrhowsArgumentException)))
219239
{
@@ -235,14 +255,15 @@ public void UpdatingEntities()
235255
context.Orders.Insert(item);
236256
}
237257

238-
var list = context.Orders.Select("CustomerName = @CustomerName", new { CustomerName = "John" });
258+
var list = context.Orders.Select("CustomerName = @CustomerName", new {CustomerName = "John"});
239259
foreach (var item in list)
240260
{
241261
item.ShipperCity = "Atlanta";
242262
context.Orders.Update(item);
243263
}
244264

245-
var updatedList = context.Orders.Select("ShipperCity = @ShipperCity", new { ShipperCity = "Atlanta" });
265+
var updatedList =
266+
context.Orders.Select("ShipperCity = @ShipperCity", new {ShipperCity = "Atlanta"});
246267
foreach (var item in updatedList)
247268
{
248269
Assert.AreEqual("Atlanta", item.ShipperCity);
@@ -298,7 +319,7 @@ public void SetEntity()
298319
{
299320
var names = context.GetSetNames();
300321
Assert.IsNotNull(names);
301-
Assert.AreEqual(names, new[] { nameof(context.Orders), nameof(context.Warehouses) });
322+
Assert.AreEqual(names, new[] {nameof(context.Orders), nameof(context.Warehouses)});
302323

303324
var orders = context.Set<Order>();
304325
var ordersByName = context.Set(typeof(Order));
@@ -330,7 +351,7 @@ public void SelectFromSetname()
330351
[Test]
331352
public void InvalidSetname_ThrowsArgumentOutOfRangeException()
332353
{
333-
Assert.Throws(typeof(System.ArgumentOutOfRangeException), () =>
354+
Assert.Throws<ArgumentOutOfRangeException>(() =>
334355
{
335356
using (var context = new TestDbContext(nameof(InvalidSetname_ThrowsArgumentOutOfRangeException)))
336357
{
@@ -389,12 +410,13 @@ public void UpdateFromSetname()
389410
item.ShipperCity = "Atlanta";
390411
context.Update(item);
391412
}
392-
var updatedItems = context.Orders.Select("ShipperCity = @ShipperCity", new { ShipperCity = "Atlanta" });
413+
var updatedItems =
414+
context.Orders.Select("ShipperCity = @ShipperCity", new {ShipperCity = "Atlanta"});
393415
Assert.AreEqual(TestHelper.DataSource.Length, updatedItems.Count());
394416
}
395417
}
396418
}
397-
419+
398420
public class Qerytest : DbContextFixture
399421
{
400422
[Test]
@@ -414,7 +436,7 @@ public void SelectingData()
414436

415437
var selectedData =
416438
context.Query<Order>($"{context.Orders.SelectDefinition} WHERE CustomerName = @CustomerName",
417-
new Order { CustomerName = "Margarita" });
439+
new Order {CustomerName = "Margarita"});
418440

419441
foreach (var item in selectedData)
420442
{
@@ -438,10 +460,16 @@ public void UsingBadQuery_ThrowsSqliteException()
438460
}
439461
}
440462

441-
Assert.Throws<SqliteException>(() => {
463+
#if NET46
464+
Assert.Throws<SQLiteException>(() =>
465+
#else
466+
Assert.Throws<SqliteException>(() =>
467+
#endif
468+
{
442469
var selectedData =
443-
context.Query<Order>($"{context.Orders.UpdateDefinition} WHERE CustomerName = @CustomerName",
444-
new Order { CustomerName = "Margarita" });
470+
context.Query<Order>(
471+
$"{context.Orders.UpdateDefinition} WHERE CustomerName = @CustomerName",
472+
new Order {CustomerName = "Margarita"});
445473

446474
});
447475
}
Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>netcoreapp2.0;net46</TargetFrameworks>
4+
<TargetFrameworks>net46;netcoreapp2.0</TargetFrameworks>
55
<AssemblyName>Unosquare.Labs.LiteLib.Tests</AssemblyName>
66
<PackageId>Unosquare.Labs.LiteLib.Tests</PackageId>
77
</PropertyGroup>
@@ -11,18 +11,9 @@
1111
</ItemGroup>
1212

1313
<ItemGroup>
14-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
14+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
1515
<PackageReference Include="dotnet-test-nunit" Version="3.4.0-beta-1" />
16-
<PackageReference Include="NUnit" Version="3.8.1" />
17-
<PackageReference Include="NUnit3TestAdapter" Version="3.8.0" />
18-
</ItemGroup>
19-
20-
<ItemGroup Condition=" '$(TargetFramework)' == 'net46' ">
21-
<PackageReference Include="Microsoft.Data.Sqlite" Version="1.0.1" />
22-
<PackageReference Include="SQLite" Version="3.13.0" />
23-
</ItemGroup>
24-
25-
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
26-
<PackageReference Include="Microsoft.Data.Sqlite" Version="2.0.0" />
16+
<PackageReference Include="NUnit" Version="3.9.0" />
17+
<PackageReference Include="NUnit3TestAdapter" Version="3.9.0" />
2718
</ItemGroup>
2819
</Project>

0 commit comments

Comments
 (0)