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