Compare commits
6 Commits
master
...
dev-efcore
Author | SHA1 | Date |
---|---|---|
zhangpeihang | 9ad060d2c3 | |
zhangpeihang | ac707dd9ec | |
zhangpeihang | 680bcf621c | |
zhangpeihang | d4aadfa5b8 | |
zhangpeihang | 2fc7e621f0 | |
zhangpeihang | d7d38d9e2e |
|
@ -56,7 +56,10 @@ public static class ServicesExtensions
|
||||||
services.AddSingleton<IRole, RoleService>();
|
services.AddSingleton<IRole, RoleService>();
|
||||||
services.AddSingleton<IGroup, GroupService>();
|
services.AddSingleton<IGroup, GroupService>();
|
||||||
services.AddSingleton<ILogin, LoginService>();
|
services.AddSingleton<ILogin, LoginService>();
|
||||||
|
services.AddSingleton<ITrace, TraceService>();
|
||||||
|
services.AddSingleton<IApp, AppService>();
|
||||||
return services;
|
return services;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,11 @@ namespace BootstrapAdmin.DataAccess.EFCore.Models;
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class NavigationRole
|
public class NavigationRole
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string? ID { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -9,6 +9,11 @@ namespace BootstrapAdmin.DataAccess.EFCore.Models;
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class RoleApp
|
public class RoleApp
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string? ID { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -9,6 +9,11 @@ namespace BootstrapAdmin.DataAccess.EFCore.Models;
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class RoleGroup
|
public class RoleGroup
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string? ID { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -9,6 +9,11 @@ namespace BootstrapAdmin.DataAccess.EFCore.Models;
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class UserGroup
|
public class UserGroup
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string? ID { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -9,6 +9,11 @@ namespace BootstrapAdmin.DataAccess.EFCore.Models;
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class UserRole
|
public class UserRole
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string? ID { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
// Licensed under the LGPL License, Version 3.0. See License.txt in the project root for license information.
|
// Licensed under the LGPL License, Version 3.0. See License.txt in the project root for license information.
|
||||||
// Website: https://admin.blazor.zone
|
// Website: https://admin.blazor.zone
|
||||||
|
|
||||||
|
using BootstrapAdmin.Caching;
|
||||||
using BootstrapAdmin.DataAccess.EFCore.Models;
|
using BootstrapAdmin.DataAccess.EFCore.Models;
|
||||||
using BootstrapAdmin.DataAccess.Models;
|
using BootstrapAdmin.DataAccess.Models;
|
||||||
using BootstrapAdmin.Web.Core;
|
using BootstrapAdmin.Web.Core;
|
||||||
|
@ -51,60 +52,57 @@ public class UserService : IUser
|
||||||
return isAuth;
|
return isAuth;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private const string UserServiceGetAppsByUserNameCacheKey = "UserService-GetAppsByUserName";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="userName"></param>
|
/// <param name="userName"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public List<string> GetApps(string userName)
|
public List<string> GetApps(string userName) => CacheManager.GetOrAdd($"{UserServiceGetAppsByUserNameCacheKey}-{userName}", entry =>
|
||||||
{
|
{
|
||||||
using var context = DbFactory.CreateDbContext();
|
using var context = DbFactory.CreateDbContext();
|
||||||
return context.Dicts.FromSqlRaw("select d.Code from Dicts d inner join RoleApp ra on d.Code = ra.AppId inner join (select r.Id from Roles r inner join UserRole ur on r.ID = ur.RoleID inner join Users u on ur.UserID = u.ID where u.UserName = {0} union select r.Id from Roles r inner join RoleGroup rg on r.ID = rg.RoleID inner join [Groups] g on rg.GroupID = g.ID inner join UserGroup ug on ug.GroupID = g.ID inner join Users u on ug.UserID = u.ID where u.UserName = {0}) r on ra.RoleId = r.ID union select Code from Dicts where Category = {1} and exists(select r.ID from Roles r inner join UserRole ur on r.ID = ur.RoleID inner join Users u on ur.UserID = u.ID where u.UserName = {0} and r.RoleName = {2} union select r.ID from Roles r inner join RoleGroup rg on r.ID = rg.RoleID inner join [Groups] g on rg.GroupID = g.ID inner join UserGroup ug on ug.GroupID = g.ID inner join Users u on ug.UserID = u.ID where u.UserName = {0} and r.RoleName = {2})", new[] { userName, "应用程序", "Administrators" }).Select(s => s.Code).AsNoTracking().ToList();
|
return context.Dicts.FromSqlRaw("select d.Code from Dicts d inner join RoleApp ra on d.Code = ra.AppId inner join (select r.Id from Roles r inner join UserRole ur on r.ID = ur.RoleID inner join Users u on ur.UserID = u.ID where u.UserName = {0} union select r.Id from Roles r inner join RoleGroup rg on r.ID = rg.RoleID inner join [Groups] g on rg.GroupID = g.ID inner join UserGroup ug on ug.GroupID = g.ID inner join Users u on ug.UserID = u.ID where u.UserName = {0}) r on ra.RoleId = r.ID union select Code from Dicts where Category = {1} and exists(select r.ID from Roles r inner join UserRole ur on r.ID = ur.RoleID inner join Users u on ur.UserID = u.ID where u.UserName = {0} and r.RoleName = {2} union select r.ID from Roles r inner join RoleGroup rg on r.ID = rg.RoleID inner join [Groups] g on rg.GroupID = g.ID inner join UserGroup ug on ug.GroupID = g.ID inner join Users u on ug.UserID = u.ID where u.UserName = {0} and r.RoleName = {2})", new[] { userName, "应用程序", "Administrators" }).Select(s => s.Code).AsNoTracking().ToList();
|
||||||
}
|
});
|
||||||
|
|
||||||
|
private const string UserServiceGetRolesByUserNameCacheKey = "UserService-GetRolesByUserName";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="userName"></param>
|
/// <param name="userName"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public string? GetDisplayName(string? userName)
|
public List<string> GetRoles(string userName) => CacheManager.GetOrAdd($"{UserServiceGetRolesByUserNameCacheKey}-{userName}", entry =>
|
||||||
{
|
|
||||||
using var context = DbFactory.CreateDbContext();
|
|
||||||
return string.IsNullOrEmpty(userName) ? "" : context.Users.FirstOrDefault(s => s.UserName == userName)?.DisplayName;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
///
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="userName"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public List<string> GetRoles(string userName)
|
|
||||||
{
|
{
|
||||||
using var context = DbFactory.CreateDbContext();
|
using var context = DbFactory.CreateDbContext();
|
||||||
return context.Roles.FromSqlRaw("select r.RoleName from Roles r inner join UserRole ur on r.ID=ur.RoleID inner join Users u on ur.UserID = u.ID and u.UserName = {0} union select r.RoleName from Roles r inner join RoleGroup rg on r.ID = rg.RoleID inner join [Groups] g on rg.GroupID = g.ID inner join UserGroup ug on ug.GroupID = g.ID inner join Users u on ug.UserID = u.ID and u.UserName = {0}", userName).Select(s => s.RoleName).AsNoTracking().ToList();
|
return context.Roles.FromSqlRaw("select r.RoleName from Roles r inner join UserRole ur on r.ID=ur.RoleID inner join Users u on ur.UserID = u.ID and u.UserName = {0} union select r.RoleName from Roles r inner join RoleGroup rg on r.ID = rg.RoleID inner join [Groups] g on rg.GroupID = g.ID inner join UserGroup ug on ug.GroupID = g.ID inner join Users u on ug.UserID = u.ID and u.UserName = {0}", userName).Select(s => s.RoleName).AsNoTracking().ToList();
|
||||||
}
|
});
|
||||||
|
|
||||||
|
private const string UserServiceGetUsersByGroupIdCacheKey = "UserService-GetUsersByGroupId";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="groupId"></param>
|
/// <param name="groupId"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public List<string> GetUsersByGroupId(string? groupId)
|
public List<string> GetUsersByGroupId(string? groupId) => CacheManager.GetOrAdd($"{UserServiceGetUsersByGroupIdCacheKey}-{groupId}", entry =>
|
||||||
{
|
{
|
||||||
using var context = DbFactory.CreateDbContext();
|
using var context = DbFactory.CreateDbContext();
|
||||||
return context.UserGroup.Where(s => s.GroupId == groupId).Select(s => s.UserId!).AsNoTracking().ToList();
|
return context.UserGroup.Where(s => s.GroupId == groupId).Select(s => s.UserId!).AsNoTracking().ToList();
|
||||||
}
|
});
|
||||||
|
|
||||||
|
private const string UserServiceGetUsersByRoleIdCacheKey = "UserService-GetUsersByRoleId";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="roleId"></param>
|
/// <param name="roleId"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public List<string> GetUsersByRoleId(string? roleId)
|
public List<string> GetUsersByRoleId(string? roleId) => CacheManager.GetOrAdd($"{UserServiceGetUsersByRoleIdCacheKey}-{roleId}", entry =>
|
||||||
{
|
{
|
||||||
using var context = DbFactory.CreateDbContext();
|
using var context = DbFactory.CreateDbContext();
|
||||||
return context.UserRole.Where(s => s.RoleId == roleId).Select(s => s.UserId!).AsNoTracking().ToList();
|
return context.UserRole.Where(s => s.RoleId == roleId).Select(s => s.UserId!).AsNoTracking().ToList();
|
||||||
}
|
});
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
|
@ -117,8 +115,12 @@ public class UserService : IUser
|
||||||
using var dbcontext = DbFactory.CreateDbContext();
|
using var dbcontext = DbFactory.CreateDbContext();
|
||||||
dbcontext.Database.ExecuteSqlRaw("delete from UserGroup where GroupId = {0}", groupId!);
|
dbcontext.Database.ExecuteSqlRaw("delete from UserGroup where GroupId = {0}", groupId!);
|
||||||
dbcontext.AddRange(userIds.Select(g => new UserGroup { UserId = g, GroupId = groupId }));
|
dbcontext.AddRange(userIds.Select(g => new UserGroup { UserId = g, GroupId = groupId }));
|
||||||
dbcontext.SaveChanges();
|
var ret = dbcontext.SaveChanges() > 0;
|
||||||
return true;
|
if (ret)
|
||||||
|
{
|
||||||
|
CacheManager.Clear();
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -132,8 +134,12 @@ public class UserService : IUser
|
||||||
using var dbcontext = DbFactory.CreateDbContext();
|
using var dbcontext = DbFactory.CreateDbContext();
|
||||||
dbcontext.Database.ExecuteSqlRaw("delete from UserRole where RoleID = {0}", roleId!);
|
dbcontext.Database.ExecuteSqlRaw("delete from UserRole where RoleID = {0}", roleId!);
|
||||||
dbcontext.AddRange(userIds.Select(g => new UserRole { UserId = g, RoleId = roleId }));
|
dbcontext.AddRange(userIds.Select(g => new UserRole { UserId = g, RoleId = roleId }));
|
||||||
dbcontext.SaveChanges();
|
var ret = dbcontext.SaveChanges() > 0;
|
||||||
return true;
|
if (ret)
|
||||||
|
{
|
||||||
|
CacheManager.Clear();
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -170,16 +176,22 @@ public class UserService : IUser
|
||||||
dbcontext.AddRange(roleIds.Select(g => new { RoleID = g, UserID = user.Id }));
|
dbcontext.AddRange(roleIds.Select(g => new { RoleID = g, UserID = user.Id }));
|
||||||
ret = dbcontext.SaveChanges() > 0;
|
ret = dbcontext.SaveChanges() > 0;
|
||||||
}
|
}
|
||||||
|
if (ret)
|
||||||
|
{
|
||||||
|
CacheManager.Clear();
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private const string UserServiceGetUserByUserNameCacheKey = "UserService-GetUserByUserName";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="userName"></param>
|
/// <param name="userName"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <exception cref="NotImplementedException"></exception>
|
/// <exception cref="NotImplementedException"></exception>
|
||||||
public User? GetUserByUserName(string? userName)
|
public User? GetUserByUserName(string? userName) => CacheManager.GetOrAdd($"{UserServiceGetUserByUserNameCacheKey}-{userName}", entry =>
|
||||||
{
|
{
|
||||||
User? user = null;
|
User? user = null;
|
||||||
if (userName != null)
|
if (userName != null)
|
||||||
|
@ -188,7 +200,7 @@ public class UserService : IUser
|
||||||
user = dbcontext.Set<User>().FirstOrDefault(s => s.UserName == userName);
|
user = dbcontext.Set<User>().FirstOrDefault(s => s.UserName == userName);
|
||||||
}
|
}
|
||||||
return user;
|
return user;
|
||||||
}
|
});
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
|
@ -222,6 +234,10 @@ public class UserService : IUser
|
||||||
string sql = "update Users set Password = {0}, PassSalt = {1} where UserName = {2}";
|
string sql = "update Users set Password = {0}, PassSalt = {1} where UserName = {2}";
|
||||||
ret = dbcontext.Database.ExecuteSqlRaw(sql, new[] { password, passSalt, userName }) > 0;
|
ret = dbcontext.Database.ExecuteSqlRaw(sql, new[] { password, passSalt, userName }) > 0;
|
||||||
}
|
}
|
||||||
|
if (ret)
|
||||||
|
{
|
||||||
|
CacheManager.Clear();
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -235,7 +251,12 @@ public class UserService : IUser
|
||||||
public bool SaveDisplayName(string userName, string displayName)
|
public bool SaveDisplayName(string userName, string displayName)
|
||||||
{
|
{
|
||||||
using var dbcontext = DbFactory.CreateDbContext();
|
using var dbcontext = DbFactory.CreateDbContext();
|
||||||
return dbcontext.Database.ExecuteSqlRaw("update Users set DisplayName = {1} where UserName = {0}", userName, displayName!) > 0;
|
var ret = dbcontext.Database.ExecuteSqlRaw("update Users set DisplayName = {1} where UserName = {0}", userName, displayName!) > 0;
|
||||||
|
if (ret)
|
||||||
|
{
|
||||||
|
CacheManager.Clear();
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -248,7 +269,12 @@ public class UserService : IUser
|
||||||
public bool SaveTheme(string userName, string theme)
|
public bool SaveTheme(string userName, string theme)
|
||||||
{
|
{
|
||||||
using var dbcontext = DbFactory.CreateDbContext();
|
using var dbcontext = DbFactory.CreateDbContext();
|
||||||
return dbcontext.Database.ExecuteSqlRaw("update Users set Css = {1} where UserName = {0}", userName, theme) > 0;
|
var ret = dbcontext.Database.ExecuteSqlRaw("update Users set Css = {1} where UserName = {0}", userName, theme) > 0;
|
||||||
|
if (ret)
|
||||||
|
{
|
||||||
|
CacheManager.Clear();
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -261,7 +287,12 @@ public class UserService : IUser
|
||||||
public bool SaveLogo(string userName, string? logo)
|
public bool SaveLogo(string userName, string? logo)
|
||||||
{
|
{
|
||||||
using var dbcontext = DbFactory.CreateDbContext();
|
using var dbcontext = DbFactory.CreateDbContext();
|
||||||
return dbcontext.Database.ExecuteSqlRaw("update Users set Icon = {1} where UserName = {0}", userName, logo ?? "") > 0;
|
var ret = dbcontext.Database.ExecuteSqlRaw("update Users set Icon = {1} where UserName = {0}", userName, logo ?? "") > 0;
|
||||||
|
if (ret)
|
||||||
|
{
|
||||||
|
CacheManager.Clear();
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -274,7 +305,12 @@ public class UserService : IUser
|
||||||
public bool SaveApp(string userName, string app)
|
public bool SaveApp(string userName, string app)
|
||||||
{
|
{
|
||||||
using var dbcontext = DbFactory.CreateDbContext();
|
using var dbcontext = DbFactory.CreateDbContext();
|
||||||
return dbcontext.Database.ExecuteSqlRaw("update Users Set App = {1} Where UserName = {0}", userName, app) > 0;
|
var ret = dbcontext.Database.ExecuteSqlRaw("update Users Set App = {1} Where UserName = {0}", userName, app) > 0;
|
||||||
|
if (ret)
|
||||||
|
{
|
||||||
|
CacheManager.Clear();
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -305,11 +341,20 @@ public class UserService : IUser
|
||||||
PassSalt = salt,
|
PassSalt = salt,
|
||||||
Password = pwd
|
Password = pwd
|
||||||
};
|
};
|
||||||
|
try
|
||||||
|
{
|
||||||
|
dbcontext.Database.BeginTransaction();
|
||||||
dbcontext.Add(user);
|
dbcontext.Add(user);
|
||||||
ret = dbcontext.SaveChanges() > 0;
|
|
||||||
// 授权 Default 角色
|
// 授权 Default 角色
|
||||||
dbcontext.Database.ExecuteSqlRaw("insert into UserRole (UserID, RoleID) select ID, (select ID from Roles where RoleName = 'Default') RoleId from Users where UserName = {0}", userName);
|
dbcontext.Database.ExecuteSqlRaw("insert into UserRole (UserID, RoleID) select ID, (select ID from Roles where RoleName = 'Default') RoleId from Users where UserName = {0}", userName);
|
||||||
ret = dbcontext.SaveChanges() > 0;
|
ret = dbcontext.SaveChanges() > 0;
|
||||||
|
dbcontext.Database.CommitTransaction();
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
dbcontext.Database.RollbackTransaction()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -317,7 +362,11 @@ public class UserService : IUser
|
||||||
user.PassSalt = salt;
|
user.PassSalt = salt;
|
||||||
user.Password = pwd;
|
user.Password = pwd;
|
||||||
dbcontext.Update(user);
|
dbcontext.Update(user);
|
||||||
ret = true;
|
ret = dbcontext.SaveChanges() > 0;
|
||||||
|
}
|
||||||
|
if (ret)
|
||||||
|
{
|
||||||
|
CacheManager.Clear();
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,9 +8,11 @@
|
||||||
<PackageReference Include="BootstrapBlazor.Middleware" Version="1.0.0" />
|
<PackageReference Include="BootstrapBlazor.Middleware" Version="1.0.0" />
|
||||||
<PackageReference Include="Longbow.Logging" Version="6.0.2" />
|
<PackageReference Include="Longbow.Logging" Version="6.0.2" />
|
||||||
<PackageReference Include="Longbow.Tasks" Version="5.2.1" />
|
<PackageReference Include="Longbow.Tasks" Version="5.2.1" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.5" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\BootstrapAdmin.DataAccess.EFCore\BootstrapAdmin.DataAccess.EFCore.csproj" />
|
||||||
<ProjectReference Include="..\BootstrapAdmin.DataAccess.PetaPoco\BootstrapAdmin.DataAccess.PetaPoco.csproj" />
|
<ProjectReference Include="..\BootstrapAdmin.DataAccess.PetaPoco\BootstrapAdmin.DataAccess.PetaPoco.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ using BootstrapAdmin.Web.Services.SMS.Tencent;
|
||||||
using BootstrapAdmin.Web.Utils;
|
using BootstrapAdmin.Web.Utils;
|
||||||
using PetaPoco;
|
using PetaPoco;
|
||||||
using PetaPoco.Providers;
|
using PetaPoco.Providers;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.DependencyInjection
|
namespace Microsoft.Extensions.DependencyInjection
|
||||||
{
|
{
|
||||||
|
@ -52,13 +53,13 @@ namespace Microsoft.Extensions.DependencyInjection
|
||||||
services.AddScoped<BootstrapAppContext>();
|
services.AddScoped<BootstrapAppContext>();
|
||||||
|
|
||||||
// 增加 EFCore 数据服务
|
// 增加 EFCore 数据服务
|
||||||
//services.AddEFCoreDataAccessServices((provider, option) =>
|
services.AddEFCoreDataAccessServices((provider, option) =>
|
||||||
//{
|
{
|
||||||
// var configuration = provider.GetRequiredService<IConfiguration>();
|
var configuration = provider.GetRequiredService<IConfiguration>();
|
||||||
// var connString = configuration.GetConnectionString("bb");
|
var connString = configuration.GetConnectionString("bb");
|
||||||
// option.UseSqlite(connString);
|
option.UseSqlite(connString);
|
||||||
// option.EnableSensitiveDataLogging();
|
option.EnableSensitiveDataLogging();
|
||||||
//});
|
});
|
||||||
|
|
||||||
// 增加 FreeSql 数据服务
|
// 增加 FreeSql 数据服务
|
||||||
// services.AddFreeSql((provider, builder) =>
|
// services.AddFreeSql((provider, builder) =>
|
||||||
|
@ -73,13 +74,13 @@ namespace Microsoft.Extensions.DependencyInjection
|
||||||
// });
|
// });
|
||||||
|
|
||||||
// 增加 PetaPoco 数据服务
|
// 增加 PetaPoco 数据服务
|
||||||
services.AddPetaPocoDataAccessServices((provider, builder) =>
|
//services.AddPetaPocoDataAccessServices((provider, builder) =>
|
||||||
{
|
//{
|
||||||
var configuration = provider.GetRequiredService<IConfiguration>();
|
// var configuration = provider.GetRequiredService<IConfiguration>();
|
||||||
var connString = configuration.GetConnectionString("bb");
|
// var connString = configuration.GetConnectionString("bb");
|
||||||
builder.UsingProvider<SQLiteDatabaseProvider>()
|
// builder.UsingProvider<SQLiteDatabaseProvider>()
|
||||||
.UsingConnectionString(connString);
|
// .UsingConnectionString(connString);
|
||||||
});
|
//});
|
||||||
|
|
||||||
return services;
|
return services;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue