Commit 0e21209b authored by unknown's avatar unknown
parents 22bf22c1 dd7bdd3c
......@@ -51,7 +51,9 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="Dapper.Rainbow.nuspec" />
<None Include="Dapper.Rainbow.nuspec">
<SubType>Designer</SubType>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
......
......@@ -2,7 +2,7 @@
<package >
<metadata>
<id>Dapper.Rainbow</id>
<version>0.1.1</version>
<version>0.1.2</version>
<title>Dapper.Rainbow</title>
<authors>Sam Saffron</authors>
<owners>Sam Saffron</owners>
......@@ -17,7 +17,12 @@
The implementation was extracted from http://data.stackexchange.com source at: http://code.google.com/p/stack-exchange-data-explorer/ .
Data explorer uses "Rainbow" exclusively for all database access.
</summary>
<releaseNotes>* version 0.1 </releaseNotes>
<releaseNotes>
* version 0.1:
A demo is available at https://gist.github.com/1599013 .
The implementation was extracted from http://data.stackexchange.com source at: http://code.google.com/p/stack-exchange-data-explorer/ .
Data explorer uses "Rainbow" exclusively for all database access.
</releaseNotes>
<copyright>Copyright Sam Saffron 2012</copyright>
<tags>orm dapper micro-orm</tags>
<dependencies>
......
......@@ -1504,7 +1504,12 @@ static List<FieldInfo> GetSettableFields(Type t)
}
else
{
il.Emit(OpCodes.Newobj, type.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, Type.EmptyTypes, null));
var ctor = type.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, Type.EmptyTypes, null);
if (ctor == null)
{
throw new InvalidOperationException("A parameterless default constructor is required to allow for dapper materialization");
}
il.Emit(OpCodes.Newobj, ctor);
il.Emit(OpCodes.Stloc_1);
}
il.BeginExceptionBlock();
......
......@@ -33,6 +33,29 @@ public class ConcreteOrder : Order
}
}
class NoDefualtConstructor
{
public NoDefualtConstructor(int a)
{
A = a;
}
public int A { get; set; }
}
public void EnsureNoConstructorGivesNiceError()
{
try
{
connection.Query<NoDefualtConstructor>("select 1 A").First();
}
catch(InvalidOperationException e)
{
e.Message.IsEqualTo("A parameterless default constructor is required to allow for dapper materialization");
}
}
// http://stackoverflow.com/q/8593871
public void TestAbstractInheritance()
{
......@@ -42,10 +65,8 @@ public void TestAbstractInheritance()
order.ProtectedVal.IsEqualTo(2);
order.Public.IsEqualTo(3);
order.Concrete.IsEqualTo(4);
}
public void TestListOfAnsiStrings()
{
var results = connection.Query<string>("select * from (select 'a' str union select 'b' union select 'c') X where str in @strings",
......
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