Skip to content

Commit 1dce744

Browse files
authored
Merge pull request #216 from xiangxiren/master
1、为AssemblyAutoRegisterOptions.SmartSqlAlias设置默认值;2、仓储接口注册时,获取ISqlMapper实例都通过IServiceProvider.EnsureSmartSql方法获取
2 parents d3df83b + db134b5 commit 1dce744

File tree

3 files changed

+16
-21
lines changed

3 files changed

+16
-21
lines changed

src/SmartSql.DIExtension/AssemblyAutoRegisterOptions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ public class AssemblyAutoRegisterOptions : TypeScanOptions
1010
/// <summary>
1111
/// 实例别名
1212
/// </summary>
13-
public String SmartSqlAlias { get; set; }
14-
13+
public String SmartSqlAlias { get; set; } = SmartSqlBuilder.DEFAULT_ALIAS;
14+
1515
/// <summary>
1616
/// Scope模板
1717
/// 默认:I{Scope}Repository

src/SmartSql.DIExtension/DyRepositoryExtensions.cs

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
using Microsoft.Extensions.DependencyInjection.Extensions;
1+
using System;
2+
using System.Reflection;
3+
using Microsoft.Extensions.DependencyInjection.Extensions;
24
using Microsoft.Extensions.Logging;
3-
using SmartSql;
45
using SmartSql.DIExtension;
56
using SmartSql.DyRepository;
6-
using System;
7-
using System.Linq;
8-
using System.Reflection;
9-
using SmartSql.Exceptions;
107
using SmartSql.Utils;
118

129
namespace Microsoft.Extensions.DependencyInjection
@@ -48,13 +45,12 @@ public static SmartSqlDIBuilder AddRepositoryFactory(this SmartSqlDIBuilder buil
4845
public static SmartSqlDIBuilder AddRepository<T>(this SmartSqlDIBuilder builder, string smartSqlAlias, string scope = "") where T : class
4946
{
5047
builder.AddRepositoryFactory();
51-
builder.Services.AddSingleton<T>(sp =>
48+
builder.Services.AddSingleton(sp =>
5249
{
53-
ISqlMapper sqlMapper = sp.GetRequiredService<ISqlMapper>(); ;
54-
if (!String.IsNullOrEmpty(smartSqlAlias))
55-
{
56-
sqlMapper = sp.EnsureSmartSql(smartSqlAlias).SqlMapper;
57-
}
50+
var sqlMapper = string.IsNullOrEmpty(smartSqlAlias)
51+
? sp.EnsureSmartSql().SqlMapper
52+
: sp.EnsureSmartSql(smartSqlAlias).SqlMapper;
53+
5854
var factory = sp.GetRequiredService<IRepositoryFactory>();
5955
return factory.CreateInstance(typeof(T), sqlMapper, scope) as T;
6056
});
@@ -80,18 +76,17 @@ public static SmartSqlDIBuilder AddRepositoryFromAssembly(this SmartSqlDIBuilder
8076
{
8177
builder.Services.AddSingleton(type, sp =>
8278
{
83-
ISqlMapper sqlMapper = sp.GetRequiredService<ISqlMapper>(); ;
84-
if (!String.IsNullOrEmpty(options.SmartSqlAlias))
85-
{
86-
sqlMapper = sp.EnsureSmartSql(options.SmartSqlAlias).SqlMapper;
87-
}
79+
var sqlMapper = string.IsNullOrEmpty(options.SmartSqlAlias)
80+
? sp.EnsureSmartSql().SqlMapper
81+
: sp.EnsureSmartSql(options.SmartSqlAlias).SqlMapper;
82+
8883
var factory = sp.GetRequiredService<IRepositoryFactory>();
8984
var scope = string.Empty;
9085
if (!String.IsNullOrEmpty(options.ScopeTemplate))
9186
{
9287
scope = templateParser.Parse(type.Name);
9388
}
94-
89+
9590
var instance = factory.CreateInstance(type, sqlMapper, scope);
9691
if (instance.IsDyRepository())
9792
{

src/SmartSql.Test.Unit/DI/DITest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public void AddSmartSqlByAction()
5454
public void AddRepositoryFromAssembly()
5555
{
5656
IServiceCollection services = new ServiceCollection();
57-
services.AddSmartSql("AddRepositoryFromAssembly")
57+
services.AddSmartSql()
5858
.AddRepositoryFromAssembly(o =>
5959
{
6060
o.AssemblyString = "SmartSql.Test";

0 commit comments

Comments
 (0)