diff --git a/FreeSql.Repository/FreeSql.Repository.csproj b/FreeSql.Repository/FreeSql.Repository.csproj index cc65e234..37b3a7a1 100644 --- a/FreeSql.Repository/FreeSql.Repository.csproj +++ b/FreeSql.Repository/FreeSql.Repository.csproj @@ -2,7 +2,7 @@ netstandard2.0 - 0.1.9 + 0.1.10 YeXiangQin FreeSql 通用仓库层实现,支持 MySql/SqlServer/PostgreSQL/Oracle/Sqlite 数据库。 https://github.com/2881099/FreeSql diff --git a/FreeSql.Repository/IFreeSqlExtenssions.cs b/FreeSql.Repository/IFreeSqlExtenssions.cs index 84246ad5..d753b919 100644 --- a/FreeSql.Repository/IFreeSqlExtenssions.cs +++ b/FreeSql.Repository/IFreeSqlExtenssions.cs @@ -17,15 +17,15 @@ public static class IFreeSqlExtenssions { /// public static DefaultRepository GetRepository(this IFreeSql that, Expression> filter = null) where TEntity : class { + if (filter != null) return new DefaultRepository(that, filter); return dicGetRepository - .GetOrAdd(typeof(TEntity), key1 => new ConcurrentDictionary>()) - .GetOrAdd(typeof(TKey), key2 => new ConcurrentDictionary()) - .GetOrAdd(string.Concat(filter), key3 => new DefaultRepository(that, filter)) as DefaultRepository; + .GetOrAdd(typeof(TEntity), key1 => new ConcurrentDictionary()) + .GetOrAdd(typeof(TKey), key2 => new DefaultRepository(that, null)) as DefaultRepository; } static ConcurrentDictionary> - > dicGetRepository = new ConcurrentDictionary>>(); + IRepository> + > dicGetRepository = new ConcurrentDictionary>(); /// /// 返回仓库类,适用 Insert 方法无须返回插入的数据 @@ -36,10 +36,9 @@ public static class IFreeSqlExtenssions { /// public static GuidRepository GetGuidRepository(this IFreeSql that, Expression> filter = null) where TEntity : class { + if (filter != null) return new GuidRepository(that, filter); return dicGetGuidRepository - .GetOrAdd(typeof(TEntity), key1 => new ConcurrentDictionary()) - .GetOrAdd(string.Concat(filter), key2 => new GuidRepository(that, filter)) as GuidRepository; + .GetOrAdd(typeof(TEntity), key1 => new GuidRepository(that, filter)) as GuidRepository; } - static ConcurrentDictionary> dicGetGuidRepository = new ConcurrentDictionary>(); + static ConcurrentDictionary dicGetGuidRepository = new ConcurrentDictionary(); } \ No newline at end of file diff --git a/FreeSql/FreeSql.csproj b/FreeSql/FreeSql.csproj index a93f4d20..1a489e59 100644 --- a/FreeSql/FreeSql.csproj +++ b/FreeSql/FreeSql.csproj @@ -2,7 +2,7 @@ netstandard2.0 - 0.1.9 + 0.1.10 true YeXiangQin 打造 .NETCore 最方便的 ORM,DbFirst 与 CodeFirst 混合使用,提供从实体同步数据库,或者从数据库生成实体代码,支持 MySql/SqlServer/PostgreSQL/Oracle/Sqlite 数据库。 diff --git a/FreeSql/Generator/TemplateEngin.cs b/FreeSql/Generator/TemplateEngin.cs index 74dcf3cb..eba627b6 100644 --- a/FreeSql/Generator/TemplateEngin.cs +++ b/FreeSql/Generator/TemplateEngin.cs @@ -545,14 +545,18 @@ return rTn;"); return Activator.CreateInstance(type) as ITemplateOutput; } internal static Lazy _compiler = new Lazy(() => { - var dlls = Directory.GetFiles(Directory.GetParent(Type.GetType("IFreeSql, FreeSql").Assembly.Location).FullName, "*.dll"); + //var dlls = Directory.GetFiles(Directory.GetParent(Type.GetType("IFreeSql, FreeSql").Assembly.Location).FullName, "*.dll"); var compiler = new CSScriptLib.RoslynEvaluator(); compiler.DisableReferencingFromCode = false; compiler.DebugBuild = true; - foreach (var dll in dlls) { - var ass = Assembly.LoadFile(dll); - compiler.ReferenceAssembly(ass); - } + //foreach (var dll in dlls) { + // Console.WriteLine(dll); + // var ass = Assembly.LoadFile(dll); + // compiler.ReferenceAssembly(ass); + //} + compiler + .ReferenceAssemblyOf() + .ReferenceDomainAssemblies(); return compiler; });