Commit b6cbb98a authored by Nick Craver's avatar Nick Craver

Merge branch 'pr/420'

parents 69b63884 b0cd0ef8
......@@ -368,7 +368,7 @@ private static string GetTableName(Type type)
if (type.IsArray || type.IsGenericType())
type = type.GetGenericArguments()[0];
var keyProperties = KeyPropertiesCache(type);
var keyProperties = KeyPropertiesCache(type).ToList(); //added ToList() due to issue #418, must work on a list copy
var explicitKeyProperties = ExplicitKeyPropertiesCache(type);
if (!keyProperties.Any() && !explicitKeyProperties.Any())
throw new ArgumentException("Entity must have at least one [Key] or [ExplicitKey] property");
......@@ -423,7 +423,7 @@ private static string GetTableName(Type type)
if (type.IsArray || type.IsGenericType())
type = type.GetGenericArguments()[0];
var keyProperties = KeyPropertiesCache(type);
var keyProperties = KeyPropertiesCache(type).ToList(); //added ToList() due to issue #418, must work on a list copy
var explicitKeyProperties = ExplicitKeyPropertiesCache(type);
if (!keyProperties.Any() && !explicitKeyProperties.Any())
throw new ArgumentException("Entity must have at least one [Key] or [ExplicitKey] property");
......
......@@ -4,7 +4,6 @@
using System.Linq;
using Dapper.Contrib.Extensions;
using Xunit;
#if COREFX
using System.Reflection;
......@@ -15,6 +14,8 @@
#endif
#if XUNIT2
using FactAttribute = Dapper.Tests.Contrib.SkippableFactAttribute;
#else
using Xunit;
#endif
namespace Dapper.Tests.Contrib
......@@ -101,6 +102,35 @@ private IDbConnection GetOpenConnection()
return connection;
}
[Fact]
public void Issue418()
{
using (var connection = GetOpenConnection())
{
//update first (will fail) then insert
//added for bug #418
var updateObject = new ObjectX
{
ObjectXId = Guid.NewGuid().ToString(),
Name = "Someone"
};
var updates = connection.Update(updateObject);
updates.IsFalse();
connection.DeleteAll<ObjectX>();
var objectXId = Guid.NewGuid().ToString();
var insertObject = new ObjectX
{
ObjectXId = objectXId,
Name = "Someone else"
};
connection.Insert(insertObject);
var list = connection.GetAll<ObjectX>();
list.Count().IsEqualTo(1);
}
}
/// <summary>
/// Tests for issue #351
/// </summary>
......@@ -152,8 +182,9 @@ public void GetAllWithExplicitKey()
var o1 = new ObjectX { ObjectXId = guid, Name = "Foo" };
connection.Insert(o1);
var objectXs = connection.GetAll<ObjectX>();
objectXs.Count().IsEqualTo(1);
var objectXs = connection.GetAll<ObjectX>().ToList();
objectXs.Count.IsMoreThan(0);
objectXs.Count(x => x.ObjectXId== guid).IsEqualTo(1);
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment