Skip to content

Commit 9597fbc

Browse files
authored
Merge pull request #133 from ChrisJollyAU/net6
Merge updates from working branch
2 parents 9573229 + dd223df commit 9597fbc

9 files changed

Lines changed: 53 additions & 35 deletions

File tree

Version.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
-->
1111
<VersionPrefix>6.0.0</VersionPrefix>
1212
<PreReleaseVersionLabel>alpha</PreReleaseVersionLabel>
13-
<PreReleaseVersionIteration>1</PreReleaseVersionIteration>
13+
<PreReleaseVersionIteration>2</PreReleaseVersionIteration>
1414

1515
<!--
1616
The following properties will automatically be set by CI builds when appropriate:

src/EFCore.Jet.Data/JetConfiguration.cs

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ public static object IntegerNullValue
3333
}
3434
}
3535

36-
public static DataAccessProviderType DefaultDataAccessProviderType { get; set; } = DataAccessProviderType.Odbc;
37-
36+
public static DataAccessProviderType DefaultDataAccessProviderType { get; set; } = DataAccessProviderType.Odbc;
37+
3838
// The SQL statement
3939
//
4040
// (SELECT COUNT(*) FROM MSysRelationships)
@@ -57,17 +57,13 @@ public static object IntegerNullValue
5757
/// <summary>
5858
/// The DUAL table or query
5959
/// </summary>
60-
public static string DUAL { get; set; } = DUALForAccdb;
60+
public static string CustomDualTableName = "";
61+
//MSysRelationships
62+
//MSysAccessStorage
63+
//#Dual
64+
//(SELECT COUNT(*) FROM MSysAccessStorage)
6165

62-
/// <summary>
63-
/// The dual table for accdb
64-
/// </summary>
65-
public const string DUALForMdb = "(SELECT COUNT(*) FROM MSysRelationships)";
66-
67-
/// <summary>
68-
/// The dual table for accdb
69-
/// </summary>
70-
public const string DUALForAccdb = "(SELECT COUNT(*) FROM MSysAccessStorage)";
66+
public static string DetectedDualTableName = "#Dual";
7167

7268
/// <summary>
7369
/// Gets or sets a value indicating whether show SQL statements.

src/EFCore.Jet/Query/Sql/Internal/JetQuerySqlGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ private bool IsNonComposedSetOperation(SelectExpression selectExpression)
224224
protected override void GeneratePseudoFromClause()
225225
{
226226
Sql.AppendLine()
227-
.Append("FROM " + JetConfiguration.DUAL);
227+
.Append("FROM " + "(SELECT COUNT(*) FROM `" + (string.IsNullOrEmpty(JetConfiguration.CustomDualTableName) ? JetConfiguration.DetectedDualTableName : JetConfiguration.CustomDualTableName) + "`)");
228228
}
229229

230230
private void GenerateList<T>(

src/EFCore.Jet/Scaffolding/Internal/JetDatabaseModelFactory.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,21 @@ public override DatabaseModel Create(
105105
table.Database = databaseModel;
106106
databaseModel.Tables.Add(table);
107107
}
108-
108+
109+
var tableNames = databaseModel.Tables.Select(t => t.Name).ToList();
110+
if (tableNames.Contains("MSysAccessStorage"))
111+
{
112+
JetConfiguration.DetectedDualTableName = "MSysAccessStorage";
113+
}
114+
else if (tableNames.Contains("MSysRelationships"))
115+
{
116+
JetConfiguration.DetectedDualTableName = "MSysRelationships";
117+
}
118+
else if (tableNames.Contains("#Dual"))
119+
{
120+
JetConfiguration.DetectedDualTableName = "#Dual";
121+
}
122+
109123
return databaseModel;
110124
}
111125
finally

src/EFCore.Jet/Storage/Internal/JetTimeSpanTypeMapping.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class JetTimeSpanTypeMapping : JetDateTimeTypeMapping
1515
public JetTimeSpanTypeMapping(
1616
[NotNull] string storeType,
1717
[NotNull] IJetOptions options)
18-
: base(storeType, options, System.Data.DbType.Time, typeof(TimeSpan))
18+
: base(storeType, options, System.Data.DbType.DateTime, typeof(TimeSpan))
1919
{
2020
_options = options;
2121
}

test/EFCore.Jet.FunctionalTests/BatchingTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
231231
modelBuilder.Entity<Blog>(
232232
b =>
233233
{
234-
b.Property(e => e.Id).HasDefaultValueSql("NEWID()");
234+
b.Property(e => e.Id).HasDefaultValueSql("GenGUID()");
235235
b.Property(e => e.Version).IsConcurrencyToken().ValueGeneratedOnAddOrUpdate();
236236
});
237237
}

test/EFCore.Jet.FunctionalTests/Query/GearsOfWarQueryJetFixture.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,14 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con
1717
base.OnModelCreating(modelBuilder, context);
1818

1919
modelBuilder.Entity<City>().Property(g => g.Location).HasColumnType("varchar(100)");
20+
21+
// No support yet for DateOnly/TimeOnly (#24507)
22+
modelBuilder.Entity<Mission>(
23+
b =>
24+
{
25+
b.Ignore(m => m.Date);
26+
b.Ignore(m => m.Time);
27+
});
2028
}
2129
}
2230
}

test/EFCore.Jet.FunctionalTests/Query/NorthwindFunctionsQueryJetTest.Functions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1173,7 +1173,7 @@ public override async Task Where_guid_newguid(bool isAsync)
11731173
AssertSql(
11741174
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
11751175
FROM `Order Details` AS `o`
1176-
WHERE (NEWID() <> '00000000-0000-0000-0000-000000000000') OR NEWID() IS NULL");
1176+
WHERE (GenGUID() <> '00000000-0000-0000-0000-000000000000') OR GenGUID() IS NULL");
11771177
}
11781178

11791179
public override async Task Where_string_to_upper(bool isAsync)

test/EFCore.Jet.FunctionalTests/StoreGeneratedFixupJetTest.cs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -83,117 +83,117 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con
8383
b =>
8484
{
8585
b.Property(e => e.Id1).ValueGeneratedOnAdd();
86-
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("newid()");
86+
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()");
8787
});
8888

8989
modelBuilder.Entity<Child>(
9090
b =>
9191
{
9292
b.Property(e => e.Id1).ValueGeneratedOnAdd();
93-
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("newid()");
93+
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()");
9494
});
9595

9696
modelBuilder.Entity<ParentPN>(
9797
b =>
9898
{
9999
b.Property(e => e.Id1).ValueGeneratedOnAdd();
100-
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("newid()");
100+
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()");
101101
});
102102

103103
modelBuilder.Entity<ChildPN>(
104104
b =>
105105
{
106106
b.Property(e => e.Id1).ValueGeneratedOnAdd();
107-
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("newid()");
107+
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()");
108108
});
109109

110110
modelBuilder.Entity<ParentDN>(
111111
b =>
112112
{
113113
b.Property(e => e.Id1).ValueGeneratedOnAdd();
114-
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("newid()");
114+
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()");
115115
});
116116

117117
modelBuilder.Entity<ChildDN>(
118118
b =>
119119
{
120120
b.Property(e => e.Id1).ValueGeneratedOnAdd();
121-
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("newid()");
121+
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()");
122122
});
123123

124124
modelBuilder.Entity<ParentNN>(
125125
b =>
126126
{
127127
b.Property(e => e.Id1).ValueGeneratedOnAdd();
128-
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("newid()");
128+
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()");
129129
});
130130

131131
modelBuilder.Entity<ChildNN>(
132132
b =>
133133
{
134134
b.Property(e => e.Id1).ValueGeneratedOnAdd();
135-
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("newid()");
135+
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()");
136136
});
137137

138138
modelBuilder.Entity<CategoryDN>(
139139
b =>
140140
{
141141
b.Property(e => e.Id1).ValueGeneratedOnAdd();
142-
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("newid()");
142+
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()");
143143
});
144144

145145
modelBuilder.Entity<ProductDN>(
146146
b =>
147147
{
148148
b.Property(e => e.Id1).ValueGeneratedOnAdd();
149-
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("newid()");
149+
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()");
150150
});
151151

152152
modelBuilder.Entity<CategoryPN>(
153153
b =>
154154
{
155155
b.Property(e => e.Id1).ValueGeneratedOnAdd();
156-
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("newid()");
156+
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()");
157157
});
158158

159159
modelBuilder.Entity<ProductPN>(
160160
b =>
161161
{
162162
b.Property(e => e.Id1).ValueGeneratedOnAdd();
163-
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("newid()");
163+
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()");
164164
});
165165

166166
modelBuilder.Entity<CategoryNN>(
167167
b =>
168168
{
169169
b.Property(e => e.Id1).ValueGeneratedOnAdd();
170-
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("newid()");
170+
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()");
171171
});
172172

173173
modelBuilder.Entity<ProductNN>(
174174
b =>
175175
{
176176
b.Property(e => e.Id1).ValueGeneratedOnAdd();
177-
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("newid()");
177+
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()");
178178
});
179179

180180
modelBuilder.Entity<Category>(
181181
b =>
182182
{
183183
b.Property(e => e.Id1).ValueGeneratedOnAdd();
184-
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("newid()");
184+
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()");
185185
});
186186

187187
modelBuilder.Entity<Product>(
188188
b =>
189189
{
190190
b.Property(e => e.Id1).ValueGeneratedOnAdd();
191-
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("newid()");
191+
b.Property(e => e.Id2).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()");
192192
});
193193

194194
modelBuilder.Entity<Item>(b => b.Property(e => e.Id).ValueGeneratedOnAdd());
195195

196-
modelBuilder.Entity<Game>(b => b.Property(e => e.Id).ValueGeneratedOnAdd().HasDefaultValueSql("newid()"));
196+
modelBuilder.Entity<Game>(b => b.Property(e => e.Id).ValueGeneratedOnAdd().HasDefaultValueSql("GenGUID()"));
197197
}
198198
}
199199
}

0 commit comments

Comments
 (0)