diff --git a/Build/Build.proj b/Build/Build.proj
index 2d0410a..622bd09 100644
--- a/Build/Build.proj
+++ b/Build/Build.proj
@@ -23,7 +23,7 @@
1
3
2012
- 1
+ 3
$(BuildNumber)
$(MajorVersion).$(MinorVersion).$(BuildNumber).$(Revision)
diff --git a/Common/CommonAssemblyInfo.cs b/Common/CommonAssemblyInfo.cs
index 259c0f1..46c0c4d 100644
--- a/Common/CommonAssemblyInfo.cs
+++ b/Common/CommonAssemblyInfo.cs
@@ -8,5 +8,5 @@
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
-[assembly: AssemblyVersion("1.3.1.0")]
-[assembly: AssemblyFileVersion("1.3.1.0")]
+[assembly: AssemblyVersion("1.3.3.0")]
+[assembly: AssemblyFileVersion("1.3.3.0")]
diff --git a/Efmap.nuspec b/Efmap.nuspec
index 42a6443..cfb2b8b 100644
--- a/Efmap.nuspec
+++ b/Efmap.nuspec
@@ -2,7 +2,7 @@
Efmap
- 1.3.1.0
+ 1.3.3.0
Rui Carvalho
Rui Carvalho
http://opensource.org/licenses/MIT
diff --git a/Src/Efmap/Helpers/DbContextExtensions.cs b/Src/Efmap/Helpers/DbContextExtensions.cs
index a769f6b..d0ce53d 100644
--- a/Src/Efmap/Helpers/DbContextExtensions.cs
+++ b/Src/Efmap/Helpers/DbContextExtensions.cs
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
-using System.Data.Entity.Core.Metadata.Edm;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
@@ -9,6 +8,7 @@
using System.Data.Entity;
using System.Reflection;
using System.Data.Entity.ModelConfiguration;
+using System.Data.Entity.ModelConfiguration.Configuration;
using System.Data.Entity.Infrastructure;
using Efmap.Bootstrap;
using System.IO;
@@ -99,6 +99,46 @@ public static void AutoLoadForThisContext(this DbContext context, DbModelBuilder
}
}
+ public static void AutoLoadForThisContextWithDbSet(this DbContext context, DbModelBuilder modelBuilder)
+ {
+ //verify options for modelbuilder before
+ if (InitializerFactory.IsOptionActivated("RemoveMetaDataStatus"))
+ {
+ modelBuilder.Conventions.Remove();
+ }
+
+ Type tc = context.GetType();
+ var props = tc.GetProperties().Where(
+ p => p.PropertyType.IsGenericType
+ && p.PropertyType.GetGenericTypeDefinition() == typeof(DbSet<>)
+
+ ).Select(s => s.PropertyType.GetGenericArguments());
+
+ Assembly asm = Assembly.GetAssembly(context.GetType());
+ Type loadType = typeof(EntityTypeConfiguration<>);
+
+ foreach (var dataType in props)
+ {
+ Type checkType = loadType.MakeGenericType(dataType);
+ var findType = asm.GetTypes().Where(t => t.BaseType == checkType).FirstOrDefault();
+ if (findType != null)
+ {
+ var obj = Activator.CreateInstance(findType);
+ Type registrar = typeof(ConfigurationRegistrar);
+ MethodInfo[] registrarMethods = registrar.GetMethods()
+ .Where(m => m.Name == "Add" && (m.GetGenericArguments().Where(p => p.Name == "TEntityType").Count() == 1)).ToArray();
+ if (registrarMethods.Length == 1)
+ {
+ MethodInfo registrarAdd = registrarMethods[0];
+ MethodInfo genericAdd = registrarAdd.MakeGenericMethod(dataType);
+
+ var result = genericAdd.Invoke(modelBuilder.Configurations, new[] { obj });
+ }
+
+ }
+
+ }
+ }
public static string GetSqlCreationScript(this DbContext context)
{