Skip to content

Commit 0a5eea0

Browse files
author
jaguzman
committed
Prevented the ado.net context from checking if an entity exist in the database when saving the context
1 parent 0da24c2 commit 0a5eea0

File tree

2 files changed

+16
-103
lines changed

2 files changed

+16
-103
lines changed

src/DotNetToolkit.Repository.AdoNet/Internal/AdoNetRepositoryContext.cs

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ public AdoNetRepositoryContext(DbConnection existingConnection, bool ensureDatab
147147

148148
#region Private Methods
149149

150-
private void PrepareEntitySetQuery(EntitySet entitySet, bool existInDb, out string sql, out Dictionary<string, object> parameters)
150+
private void PrepareEntitySetQuery(EntitySet entitySet, out string sql, out Dictionary<string, object> parameters)
151151
{
152152
sql = string.Empty;
153153
parameters = new Dictionary<string, object>();
@@ -156,28 +156,31 @@ private void PrepareEntitySetQuery(EntitySet entitySet, bool existInDb, out stri
156156
{
157157
case EntityState.Added:
158158
{
159-
if (existInDb)
160-
throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, Resources.EntityAlreadyBeingTrackedInStore, entitySet.Entity.GetType()));
161-
162-
QueryBuilder.CreateInsertStatement(Conventions, entitySet.Entity, out sql, out parameters);
159+
QueryBuilder.CreateInsertStatement(
160+
Conventions,
161+
entitySet.Entity,
162+
out sql,
163+
out parameters);
163164

164165
break;
165166
}
166167
case EntityState.Removed:
167168
{
168-
if (!existInDb)
169-
throw new InvalidOperationException(Resources.EntityNotFoundInStore);
170-
171-
QueryBuilder.CreateDeleteStatement(Conventions, entitySet.Entity, out sql, out parameters);
169+
QueryBuilder.CreateDeleteStatement(
170+
Conventions,
171+
entitySet.Entity,
172+
out sql,
173+
out parameters);
172174

173175
break;
174176
}
175177
case EntityState.Modified:
176178
{
177-
if (!existInDb)
178-
throw new InvalidOperationException(Resources.EntityNotFoundInStore);
179-
180-
QueryBuilder.CreateUpdateStatement(Conventions, entitySet.Entity, out sql, out parameters);
179+
QueryBuilder.CreateUpdateStatement(
180+
Conventions,
181+
entitySet.Entity,
182+
out sql,
183+
out parameters);
181184

182185
break;
183186
}
@@ -327,13 +330,9 @@ public int SaveChanges()
327330
var primaryKeyPropertyInfo = Conventions.GetPrimaryKeyPropertyInfos(entityType).First();
328331
var isIdentity = Conventions.IsColumnIdentity(primaryKeyPropertyInfo);
329332

330-
// Checks if the entity exist in the database
331-
var existInDb = _dbHelper.ExecuteObjectExist(Conventions, command, entitySet.Entity);
332-
333333
// Prepare the sql statement
334334
PrepareEntitySetQuery(
335335
entitySet,
336-
existInDb,
337336
out string sql,
338337
out Dictionary<string, object> parameters);
339338

@@ -675,13 +674,9 @@ public IPagedQueryResult<IEnumerable<TResult>> GroupBy<TEntity, TGroupKey, TResu
675674
var primaryKeyPropertyInfo = Conventions.GetPrimaryKeyPropertyInfos(entityType).First();
676675
var isIdentity = Conventions.IsColumnIdentity(primaryKeyPropertyInfo);
677676

678-
// Checks if the entity exist in the database
679-
var existInDb = await _dbHelper.ExecuteObjectExistAsync(Conventions, command, entitySet.Entity, cancellationToken);
680-
681677
// Prepare the sql statement
682678
PrepareEntitySetQuery(
683679
entitySet,
684-
existInDb,
685680
out string sql,
686681
out Dictionary<string, object> parameters);
687682

src/DotNetToolkit.Repository.AdoNet/Internal/DbCommandExtensions.cs

Lines changed: 0 additions & 82 deletions
This file was deleted.

0 commit comments

Comments
 (0)