mirror of
https://github.com/anjoy8/Blog.Core.git
synced 2024-09-20 23:48:27 +08:00
parent
6a75c5e92b
commit
102c6d6bfc
|
@ -15,15 +15,15 @@ namespace Blog.Core.Model.Models
|
|||
/// <summary>
|
||||
/// 生成Model层
|
||||
/// </summary>
|
||||
/// <param name="myContext">上下文</param>
|
||||
/// <param name="sqlSugarClient">sqlsugar实例</param>
|
||||
/// <param name="tableNames">数据库表名数组,默认空,生成所有表</param>
|
||||
/// <returns></returns>
|
||||
public static bool CreateModels(MyContext myContext, string[] tableNames = null)
|
||||
public static bool CreateModels(SqlSugarClient sqlSugarClient, string[] tableNames = null)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
myContext.Create_Model_ClassFileByDBTalbe($@"C:\my-file\Blog.Core.Model", "Blog.Core.Model.Models", tableNames, "");
|
||||
Create_Model_ClassFileByDBTalbe(sqlSugarClient, $@"C:\my-file\Blog.Core.Model", "Blog.Core.Model.Models", tableNames, "");
|
||||
return true;
|
||||
}
|
||||
catch (Exception)
|
||||
|
@ -36,15 +36,15 @@ namespace Blog.Core.Model.Models
|
|||
/// <summary>
|
||||
/// 生成IRepository层
|
||||
/// </summary>
|
||||
/// <param name="myContext">上下文</param>
|
||||
/// <param name="sqlSugarClient">sqlsugar实例</param>
|
||||
/// <param name="tableNames">数据库表名数组,默认空,生成所有表</param>
|
||||
/// <returns></returns>
|
||||
public static bool CreateIRepositorys(MyContext myContext, string[] tableNames = null)
|
||||
public static bool CreateIRepositorys(SqlSugarClient sqlSugarClient, string[] tableNames = null)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
myContext.Create_IRepository_ClassFileByDBTalbe($@"C:\my-file\Blog.Core.IRepository", "Blog.Core.IRepository", tableNames, "");
|
||||
Create_IRepository_ClassFileByDBTalbe(sqlSugarClient, $@"C:\my-file\Blog.Core.IRepository", "Blog.Core.IRepository", tableNames, "");
|
||||
return true;
|
||||
}
|
||||
catch (Exception)
|
||||
|
@ -59,15 +59,15 @@ namespace Blog.Core.Model.Models
|
|||
/// <summary>
|
||||
/// 生成 IService 层
|
||||
/// </summary>
|
||||
/// <param name="myContext">上下文</param>
|
||||
/// <param name="sqlSugarClient">sqlsugar实例</param>
|
||||
/// <param name="tableNames">数据库表名数组,默认空,生成所有表</param>
|
||||
/// <returns></returns>
|
||||
public static bool CreateIServices(MyContext myContext, string[] tableNames = null)
|
||||
public static bool CreateIServices(SqlSugarClient sqlSugarClient, string[] tableNames = null)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
myContext.Create_IServices_ClassFileByDBTalbe($@"C:\my-file\Blog.Core.IServices", "Blog.Core.IServices", tableNames, "");
|
||||
Create_IServices_ClassFileByDBTalbe(sqlSugarClient, $@"C:\my-file\Blog.Core.IServices", "Blog.Core.IServices", tableNames, "");
|
||||
return true;
|
||||
}
|
||||
catch (Exception)
|
||||
|
@ -82,15 +82,15 @@ namespace Blog.Core.Model.Models
|
|||
/// <summary>
|
||||
/// 生成 Repository 层
|
||||
/// </summary>
|
||||
/// <param name="myContext">上下文</param>
|
||||
/// <param name="sqlSugarClient">sqlsugar实例</param>
|
||||
/// <param name="tableNames">数据库表名数组,默认空,生成所有表</param>
|
||||
/// <returns></returns>
|
||||
public static bool CreateRepository(MyContext myContext, string[] tableNames = null)
|
||||
public static bool CreateRepository(SqlSugarClient sqlSugarClient, string[] tableNames = null)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
myContext.Create_Repository_ClassFileByDBTalbe($@"C:\my-file\Blog.Core.Repository", "Blog.Core.Repository", tableNames, "");
|
||||
Create_Repository_ClassFileByDBTalbe(sqlSugarClient, $@"C:\my-file\Blog.Core.Repository", "Blog.Core.Repository", tableNames, "");
|
||||
return true;
|
||||
}
|
||||
catch (Exception)
|
||||
|
@ -105,15 +105,15 @@ namespace Blog.Core.Model.Models
|
|||
/// <summary>
|
||||
/// 生成 Service 层
|
||||
/// </summary>
|
||||
/// <param name="myContext">上下文</param>
|
||||
/// <param name="sqlSugarClient">sqlsugar实例</param>
|
||||
/// <param name="tableNames">数据库表名数组,默认空,生成所有表</param>
|
||||
/// <returns></returns>
|
||||
public static bool CreateServices(MyContext myContext, string[] tableNames = null)
|
||||
public static bool CreateServices(SqlSugarClient sqlSugarClient, string[] tableNames = null)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
myContext.Create_Services_ClassFileByDBTalbe($@"C:\my-file\Blog.Core.Services", "Blog.Core.Services", tableNames, "");
|
||||
Create_Services_ClassFileByDBTalbe(sqlSugarClient, $@"C:\my-file\Blog.Core.Services", "Blog.Core.Services", tableNames, "");
|
||||
return true;
|
||||
}
|
||||
catch (Exception)
|
||||
|
@ -122,5 +122,296 @@ namespace Blog.Core.Model.Models
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#region 根据数据库表生产Model层
|
||||
|
||||
/// <summary>
|
||||
/// 功能描述:根据数据库表生产Model层
|
||||
/// 作 者:Blog.Core
|
||||
/// </summary>
|
||||
/// <param name="sqlSugarClient"></param>
|
||||
/// <param name="strPath">实体类存放路径</param>
|
||||
/// <param name="strNameSpace">命名空间</param>
|
||||
/// <param name="lstTableNames">生产指定的表</param>
|
||||
/// <param name="strInterface">实现接口</param>
|
||||
/// <param name="blnSerializable">是否序列化</param>
|
||||
private static void Create_Model_ClassFileByDBTalbe(
|
||||
SqlSugarClient sqlSugarClient,
|
||||
string strPath,
|
||||
string strNameSpace,
|
||||
string[] lstTableNames,
|
||||
string strInterface,
|
||||
bool blnSerializable = false)
|
||||
{
|
||||
var IDbFirst = sqlSugarClient.DbFirst;
|
||||
if (lstTableNames != null && lstTableNames.Length > 0)
|
||||
{
|
||||
IDbFirst = IDbFirst.Where(lstTableNames);
|
||||
}
|
||||
var ls = IDbFirst.IsCreateDefaultValue().IsCreateAttribute()
|
||||
|
||||
.SettingClassTemplate(p => p = @"
|
||||
{using}
|
||||
|
||||
namespace " + strNameSpace + @"
|
||||
{
|
||||
{ClassDescription}{SugarTable}" + (blnSerializable ? "[Serializable]" : "") + @"
|
||||
public class {ClassName}" + (string.IsNullOrEmpty(strInterface) ? "" : (" : " + strInterface)) + @"
|
||||
{
|
||||
public {ClassName}()
|
||||
{
|
||||
}
|
||||
{PropertyName}
|
||||
}
|
||||
}
|
||||
")
|
||||
|
||||
.SettingPropertyTemplate(p => p = @"
|
||||
{SugarColumn}
|
||||
public {PropertyType} {PropertyName} { get; set; }
|
||||
|
||||
")
|
||||
|
||||
//.SettingPropertyDescriptionTemplate(p => p = " private {PropertyType} _{PropertyName};\r\n" + p)
|
||||
//.SettingConstructorTemplate(p => p = " this._{PropertyName} ={DefaultValue};")
|
||||
|
||||
.ToClassStringList(strNameSpace);
|
||||
CreateFilesByClassStringList(ls, strPath, "{0}");
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 根据数据库表生产IRepository层
|
||||
|
||||
/// <summary>
|
||||
/// 功能描述:根据数据库表生产IRepository层
|
||||
/// 作 者:Blog.Core
|
||||
/// </summary>
|
||||
/// <param name="sqlSugarClient"></param>
|
||||
/// <param name="strPath">实体类存放路径</param>
|
||||
/// <param name="strNameSpace">命名空间</param>
|
||||
/// <param name="lstTableNames">生产指定的表</param>
|
||||
/// <param name="strInterface">实现接口</param>
|
||||
private static void Create_IRepository_ClassFileByDBTalbe(
|
||||
SqlSugarClient sqlSugarClient,
|
||||
string strPath,
|
||||
string strNameSpace,
|
||||
string[] lstTableNames,
|
||||
string strInterface)
|
||||
{
|
||||
var IDbFirst = sqlSugarClient.DbFirst;
|
||||
if (lstTableNames != null && lstTableNames.Length > 0)
|
||||
{
|
||||
IDbFirst = IDbFirst.Where(lstTableNames);
|
||||
}
|
||||
var ls = IDbFirst.IsCreateDefaultValue().IsCreateAttribute()
|
||||
|
||||
.SettingClassTemplate(p => p = @"
|
||||
using Blog.Core.IRepository.Base;
|
||||
using Blog.Core.Model.Models;
|
||||
|
||||
namespace " + strNameSpace + @"
|
||||
{
|
||||
/// <summary>
|
||||
/// I{ClassName}Repository
|
||||
/// </summary>
|
||||
public interface I{ClassName}Repository : IBaseRepository<{ClassName}>" + (string.IsNullOrEmpty(strInterface) ? "" : (" , " + strInterface)) + @"
|
||||
{
|
||||
}
|
||||
}
|
||||
")
|
||||
|
||||
.ToClassStringList(strNameSpace);
|
||||
CreateFilesByClassStringList(ls, strPath, "I{0}Repository");
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 根据数据库表生产IServices层
|
||||
|
||||
/// <summary>
|
||||
/// 功能描述:根据数据库表生产IServices层
|
||||
/// 作 者:Blog.Core
|
||||
/// </summary>
|
||||
/// <param name="sqlSugarClient"></param>
|
||||
/// <param name="strPath">实体类存放路径</param>
|
||||
/// <param name="strNameSpace">命名空间</param>
|
||||
/// <param name="lstTableNames">生产指定的表</param>
|
||||
/// <param name="strInterface">实现接口</param>
|
||||
private static void Create_IServices_ClassFileByDBTalbe(
|
||||
SqlSugarClient sqlSugarClient,
|
||||
string strPath,
|
||||
string strNameSpace,
|
||||
string[] lstTableNames,
|
||||
string strInterface)
|
||||
{
|
||||
var IDbFirst = sqlSugarClient.DbFirst;
|
||||
if (lstTableNames != null && lstTableNames.Length > 0)
|
||||
{
|
||||
IDbFirst = IDbFirst.Where(lstTableNames);
|
||||
}
|
||||
var ls = IDbFirst.IsCreateDefaultValue().IsCreateAttribute()
|
||||
|
||||
.SettingClassTemplate(p => p = @"
|
||||
using Blog.Core.IServices.BASE;
|
||||
using Blog.Core.Model.Models;
|
||||
|
||||
namespace " + strNameSpace + @"
|
||||
{
|
||||
/// <summary>
|
||||
/// I{ClassName}Services
|
||||
/// </summary>
|
||||
public interface I{ClassName}Services :IBaseServices<{ClassName}>" + (string.IsNullOrEmpty(strInterface) ? "" : (" , " + strInterface)) + @"
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
")
|
||||
|
||||
.ToClassStringList(strNameSpace);
|
||||
CreateFilesByClassStringList(ls, strPath, "I{0}Services");
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region 根据数据库表生产 Repository 层
|
||||
|
||||
/// <summary>
|
||||
/// 功能描述:根据数据库表生产 Repository 层
|
||||
/// 作 者:Blog.Core
|
||||
/// </summary>
|
||||
/// <param name="sqlSugarClient"></param>
|
||||
/// <param name="strPath">实体类存放路径</param>
|
||||
/// <param name="strNameSpace">命名空间</param>
|
||||
/// <param name="lstTableNames">生产指定的表</param>
|
||||
/// <param name="strInterface">实现接口</param>
|
||||
private static void Create_Repository_ClassFileByDBTalbe(
|
||||
SqlSugarClient sqlSugarClient,
|
||||
string strPath,
|
||||
string strNameSpace,
|
||||
string[] lstTableNames,
|
||||
string strInterface)
|
||||
{
|
||||
var IDbFirst = sqlSugarClient.DbFirst;
|
||||
if (lstTableNames != null && lstTableNames.Length > 0)
|
||||
{
|
||||
IDbFirst = IDbFirst.Where(lstTableNames);
|
||||
}
|
||||
var ls = IDbFirst.IsCreateDefaultValue().IsCreateAttribute()
|
||||
|
||||
.SettingClassTemplate(p => p = @"
|
||||
using Blog.Core.IRepository;
|
||||
using Blog.Core.IRepository.UnitOfWork;
|
||||
using Blog.Core.Model.Models;
|
||||
using Blog.Core.Repository.Base;
|
||||
|
||||
namespace " + strNameSpace + @"
|
||||
{
|
||||
/// <summary>
|
||||
/// {ClassName}Repository
|
||||
/// </summary>
|
||||
public class {ClassName}Repository : BaseRepository<{ClassName}>, I{ClassName}Repository" + (string.IsNullOrEmpty(strInterface) ? "" : (" , " + strInterface)) + @"
|
||||
{
|
||||
public {ClassName}Repository(IUnitOfWork unitOfWork) : base(unitOfWork)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
")
|
||||
|
||||
.ToClassStringList(strNameSpace);
|
||||
|
||||
|
||||
CreateFilesByClassStringList(ls, strPath, "{0}Repository");
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 根据数据库表生产 Services 层
|
||||
|
||||
/// <summary>
|
||||
/// 功能描述:根据数据库表生产 Services 层
|
||||
/// 作 者:Blog.Core
|
||||
/// </summary>
|
||||
/// <param name="sqlSugarClient"></param>
|
||||
/// <param name="strPath">实体类存放路径</param>
|
||||
/// <param name="strNameSpace">命名空间</param>
|
||||
/// <param name="lstTableNames">生产指定的表</param>
|
||||
/// <param name="strInterface">实现接口</param>
|
||||
private static void Create_Services_ClassFileByDBTalbe(
|
||||
SqlSugarClient sqlSugarClient,
|
||||
string strPath,
|
||||
string strNameSpace,
|
||||
string[] lstTableNames,
|
||||
string strInterface)
|
||||
{
|
||||
var IDbFirst = sqlSugarClient.DbFirst;
|
||||
if (lstTableNames != null && lstTableNames.Length > 0)
|
||||
{
|
||||
IDbFirst = IDbFirst.Where(lstTableNames);
|
||||
}
|
||||
var ls = IDbFirst.IsCreateDefaultValue().IsCreateAttribute()
|
||||
|
||||
.SettingClassTemplate(p => p = @"
|
||||
using Blog.Core.IRepository;
|
||||
using Blog.Core.IServices;
|
||||
using Blog.Core.Model.Models;
|
||||
using Blog.Core.Services.BASE;
|
||||
|
||||
namespace " + strNameSpace + @"
|
||||
{
|
||||
public partial class {ClassName}Services : BaseServices<{ClassName}>, I{ClassName}Services" + (string.IsNullOrEmpty(strInterface) ? "" : (" , " + strInterface)) + @"
|
||||
{
|
||||
I{ClassName}Repository _dal;
|
||||
public {ClassName}Services(I{ClassName}Repository dal)
|
||||
{
|
||||
this._dal = dal;
|
||||
base.BaseDal = dal;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
")
|
||||
|
||||
.ToClassStringList(strNameSpace);
|
||||
|
||||
CreateFilesByClassStringList(ls, strPath, "{0}Services");
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 根据模板内容批量生成文件
|
||||
/// <summary>
|
||||
/// 根据模板内容批量生成文件
|
||||
/// </summary>
|
||||
/// <param name="ls">类文件字符串list</param>
|
||||
/// <param name="strPath">生成路径</param>
|
||||
/// <param name="fileNameTp">文件名格式模板</param>
|
||||
private static void CreateFilesByClassStringList(Dictionary<string, string> ls, string strPath, string fileNameTp)
|
||||
{
|
||||
|
||||
foreach (var item in ls)
|
||||
{
|
||||
var fileName = $"{string.Format(fileNameTp, item.Key)}.cs";
|
||||
var fileFullPath = Path.Combine(strPath, fileName);
|
||||
if (!Directory.Exists(strPath))
|
||||
{
|
||||
Directory.CreateDirectory(strPath);
|
||||
}
|
||||
File.WriteAllText(fileFullPath, item.Value);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -106,283 +106,6 @@ namespace Blog.Core.Model.Models
|
|||
}
|
||||
|
||||
|
||||
#region 根据数据库表生产Model层
|
||||
|
||||
/// <summary>
|
||||
/// 功能描述:根据数据库表生产Model层
|
||||
/// 作 者:Blog.Core
|
||||
/// </summary>
|
||||
/// <param name="strPath">实体类存放路径</param>
|
||||
/// <param name="strNameSpace">命名空间</param>
|
||||
/// <param name="lstTableNames">生产指定的表</param>
|
||||
/// <param name="strInterface">实现接口</param>
|
||||
/// <param name="blnSerializable">是否序列化</param>
|
||||
public void Create_Model_ClassFileByDBTalbe(
|
||||
string strPath,
|
||||
string strNameSpace,
|
||||
string[] lstTableNames,
|
||||
string strInterface,
|
||||
bool blnSerializable = false)
|
||||
{
|
||||
var IDbFirst = _db.DbFirst;
|
||||
if (lstTableNames != null && lstTableNames.Length > 0)
|
||||
{
|
||||
IDbFirst = IDbFirst.Where(lstTableNames);
|
||||
}
|
||||
var ls = IDbFirst.IsCreateDefaultValue().IsCreateAttribute()
|
||||
|
||||
.SettingClassTemplate(p => p = @"
|
||||
{using}
|
||||
|
||||
namespace " + strNameSpace + @"
|
||||
{
|
||||
{ClassDescription}{SugarTable}" + (blnSerializable ? "[Serializable]" : "") + @"
|
||||
public class {ClassName}" + (string.IsNullOrEmpty(strInterface) ? "" : (" : " + strInterface)) + @"
|
||||
{
|
||||
public {ClassName}()
|
||||
{
|
||||
}
|
||||
{PropertyName}
|
||||
}
|
||||
}
|
||||
")
|
||||
|
||||
.SettingPropertyTemplate(p => p = @"
|
||||
{SugarColumn}
|
||||
public {PropertyType} {PropertyName} { get; set; }
|
||||
|
||||
")
|
||||
|
||||
//.SettingPropertyDescriptionTemplate(p => p = " private {PropertyType} _{PropertyName};\r\n" + p)
|
||||
//.SettingConstructorTemplate(p => p = " this._{PropertyName} ={DefaultValue};")
|
||||
|
||||
.ToClassStringList(strNameSpace);
|
||||
CreateFilesByClassStringList(ls, strPath, "{0}");
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 根据数据库表生产IRepository层
|
||||
|
||||
/// <summary>
|
||||
/// 功能描述:根据数据库表生产IRepository层
|
||||
/// 作 者:Blog.Core
|
||||
/// </summary>
|
||||
/// <param name="strPath">实体类存放路径</param>
|
||||
/// <param name="strNameSpace">命名空间</param>
|
||||
/// <param name="lstTableNames">生产指定的表</param>
|
||||
/// <param name="strInterface">实现接口</param>
|
||||
public void Create_IRepository_ClassFileByDBTalbe(
|
||||
string strPath,
|
||||
string strNameSpace,
|
||||
string[] lstTableNames,
|
||||
string strInterface)
|
||||
{
|
||||
var IDbFirst = _db.DbFirst;
|
||||
if (lstTableNames != null && lstTableNames.Length > 0)
|
||||
{
|
||||
IDbFirst = IDbFirst.Where(lstTableNames);
|
||||
}
|
||||
var ls = IDbFirst.IsCreateDefaultValue().IsCreateAttribute()
|
||||
|
||||
.SettingClassTemplate(p => p = @"
|
||||
using Blog.Core.IRepository.Base;
|
||||
using Blog.Core.Model.Models;
|
||||
|
||||
namespace " + strNameSpace + @"
|
||||
{
|
||||
/// <summary>
|
||||
/// I{ClassName}Repository
|
||||
/// </summary>
|
||||
public interface I{ClassName}Repository : IBaseRepository<{ClassName}>" + (string.IsNullOrEmpty(strInterface) ? "" : (" , " + strInterface)) + @"
|
||||
{
|
||||
}
|
||||
}
|
||||
")
|
||||
|
||||
.ToClassStringList(strNameSpace);
|
||||
CreateFilesByClassStringList(ls, strPath, "I{0}Repository");
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 根据数据库表生产IServices层
|
||||
|
||||
/// <summary>
|
||||
/// 功能描述:根据数据库表生产IServices层
|
||||
/// 作 者:Blog.Core
|
||||
/// </summary>
|
||||
/// <param name="strPath">实体类存放路径</param>
|
||||
/// <param name="strNameSpace">命名空间</param>
|
||||
/// <param name="lstTableNames">生产指定的表</param>
|
||||
/// <param name="strInterface">实现接口</param>
|
||||
public void Create_IServices_ClassFileByDBTalbe(
|
||||
string strPath,
|
||||
string strNameSpace,
|
||||
string[] lstTableNames,
|
||||
string strInterface)
|
||||
{
|
||||
var IDbFirst = _db.DbFirst;
|
||||
if (lstTableNames != null && lstTableNames.Length > 0)
|
||||
{
|
||||
IDbFirst = IDbFirst.Where(lstTableNames);
|
||||
}
|
||||
var ls = IDbFirst.IsCreateDefaultValue().IsCreateAttribute()
|
||||
|
||||
.SettingClassTemplate(p => p = @"
|
||||
using Blog.Core.IServices.BASE;
|
||||
using Blog.Core.Model.Models;
|
||||
|
||||
namespace " + strNameSpace + @"
|
||||
{
|
||||
/// <summary>
|
||||
/// I{ClassName}Services
|
||||
/// </summary>
|
||||
public interface I{ClassName}Services :IBaseServices<{ClassName}>" + (string.IsNullOrEmpty(strInterface) ? "" : (" , " + strInterface)) + @"
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
")
|
||||
|
||||
.ToClassStringList(strNameSpace);
|
||||
CreateFilesByClassStringList(ls, strPath, "I{0}Services");
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region 根据数据库表生产 Repository 层
|
||||
|
||||
/// <summary>
|
||||
/// 功能描述:根据数据库表生产 Repository 层
|
||||
/// 作 者:Blog.Core
|
||||
/// </summary>
|
||||
/// <param name="strPath">实体类存放路径</param>
|
||||
/// <param name="strNameSpace">命名空间</param>
|
||||
/// <param name="lstTableNames">生产指定的表</param>
|
||||
/// <param name="strInterface">实现接口</param>
|
||||
public void Create_Repository_ClassFileByDBTalbe(
|
||||
string strPath,
|
||||
string strNameSpace,
|
||||
string[] lstTableNames,
|
||||
string strInterface)
|
||||
{
|
||||
var IDbFirst = _db.DbFirst;
|
||||
if (lstTableNames != null && lstTableNames.Length > 0)
|
||||
{
|
||||
IDbFirst = IDbFirst.Where(lstTableNames);
|
||||
}
|
||||
var ls = IDbFirst.IsCreateDefaultValue().IsCreateAttribute()
|
||||
|
||||
.SettingClassTemplate(p => p = @"
|
||||
using Blog.Core.IRepository;
|
||||
using Blog.Core.IRepository.UnitOfWork;
|
||||
using Blog.Core.Model.Models;
|
||||
using Blog.Core.Repository.Base;
|
||||
|
||||
namespace " + strNameSpace + @"
|
||||
{
|
||||
/// <summary>
|
||||
/// {ClassName}Repository
|
||||
/// </summary>
|
||||
public class {ClassName}Repository : BaseRepository<{ClassName}>, I{ClassName}Repository" + (string.IsNullOrEmpty(strInterface) ? "" : (" , " + strInterface)) + @"
|
||||
{
|
||||
public {ClassName}Repository(IUnitOfWork unitOfWork) : base(unitOfWork)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
")
|
||||
|
||||
.ToClassStringList(strNameSpace);
|
||||
|
||||
|
||||
CreateFilesByClassStringList(ls, strPath, "{0}Repository");
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 根据数据库表生产 Services 层
|
||||
|
||||
/// <summary>
|
||||
/// 功能描述:根据数据库表生产 Services 层
|
||||
/// 作 者:Blog.Core
|
||||
/// </summary>
|
||||
/// <param name="strPath">实体类存放路径</param>
|
||||
/// <param name="strNameSpace">命名空间</param>
|
||||
/// <param name="lstTableNames">生产指定的表</param>
|
||||
/// <param name="strInterface">实现接口</param>
|
||||
public void Create_Services_ClassFileByDBTalbe(
|
||||
string strPath,
|
||||
string strNameSpace,
|
||||
string[] lstTableNames,
|
||||
string strInterface)
|
||||
{
|
||||
var IDbFirst = _db.DbFirst;
|
||||
if (lstTableNames != null && lstTableNames.Length > 0)
|
||||
{
|
||||
IDbFirst = IDbFirst.Where(lstTableNames);
|
||||
}
|
||||
var ls = IDbFirst.IsCreateDefaultValue().IsCreateAttribute()
|
||||
|
||||
.SettingClassTemplate(p => p = @"
|
||||
using Blog.Core.IRepository;
|
||||
using Blog.Core.IServices;
|
||||
using Blog.Core.Model.Models;
|
||||
using Blog.Core.Services.BASE;
|
||||
|
||||
namespace " + strNameSpace + @"
|
||||
{
|
||||
public partial class {ClassName}Services : BaseServices<{ClassName}>, I{ClassName}Services" + (string.IsNullOrEmpty(strInterface) ? "" : (" , " + strInterface)) + @"
|
||||
{
|
||||
I{ClassName}Repository _dal;
|
||||
public {ClassName}Services(I{ClassName}Repository dal)
|
||||
{
|
||||
this._dal = dal;
|
||||
base.BaseDal = dal;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
")
|
||||
|
||||
.ToClassStringList(strNameSpace);
|
||||
|
||||
CreateFilesByClassStringList(ls, strPath, "{0}Services");
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 根据模板内容批量生成文件
|
||||
/// <summary>
|
||||
/// 根据模板内容批量生成文件
|
||||
/// </summary>
|
||||
/// <param name="ls">类文件字符串list</param>
|
||||
/// <param name="strPath">生成路径</param>
|
||||
/// <param name="fileNameTp">文件名格式模板</param>
|
||||
public void CreateFilesByClassStringList(Dictionary<string, string> ls, string strPath, string fileNameTp)
|
||||
{
|
||||
|
||||
foreach (var item in ls)
|
||||
{
|
||||
var fileName = $"{string.Format(fileNameTp, item.Key)}.cs";
|
||||
var fileFullPath = Path.Combine(strPath, fileName);
|
||||
if (!Directory.Exists(strPath))
|
||||
{
|
||||
Directory.CreateDirectory(strPath);
|
||||
}
|
||||
File.WriteAllText(fileFullPath, item.Value);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
|
||||
#region 实例方法
|
||||
/// <summary>
|
||||
/// 功能描述:获取数据库处理对象
|
||||
|
|
|
@ -808,46 +808,110 @@
|
|||
<param name="WebRootPath"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.FrameSeed.CreateModels(Blog.Core.Model.Models.MyContext,System.String[])">
|
||||
<member name="M:Blog.Core.Model.Models.FrameSeed.CreateModels(SqlSugar.SqlSugarClient,System.String[])">
|
||||
<summary>
|
||||
生成Model层
|
||||
</summary>
|
||||
<param name="myContext">上下文</param>
|
||||
<param name="sqlSugarClient">sqlsugar实例</param>
|
||||
<param name="tableNames">数据库表名数组,默认空,生成所有表</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.FrameSeed.CreateIRepositorys(Blog.Core.Model.Models.MyContext,System.String[])">
|
||||
<member name="M:Blog.Core.Model.Models.FrameSeed.CreateIRepositorys(SqlSugar.SqlSugarClient,System.String[])">
|
||||
<summary>
|
||||
生成IRepository层
|
||||
</summary>
|
||||
<param name="myContext">上下文</param>
|
||||
<param name="sqlSugarClient">sqlsugar实例</param>
|
||||
<param name="tableNames">数据库表名数组,默认空,生成所有表</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.FrameSeed.CreateIServices(Blog.Core.Model.Models.MyContext,System.String[])">
|
||||
<member name="M:Blog.Core.Model.Models.FrameSeed.CreateIServices(SqlSugar.SqlSugarClient,System.String[])">
|
||||
<summary>
|
||||
生成 IService 层
|
||||
</summary>
|
||||
<param name="myContext">上下文</param>
|
||||
<param name="sqlSugarClient">sqlsugar实例</param>
|
||||
<param name="tableNames">数据库表名数组,默认空,生成所有表</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.FrameSeed.CreateRepository(Blog.Core.Model.Models.MyContext,System.String[])">
|
||||
<member name="M:Blog.Core.Model.Models.FrameSeed.CreateRepository(SqlSugar.SqlSugarClient,System.String[])">
|
||||
<summary>
|
||||
生成 Repository 层
|
||||
</summary>
|
||||
<param name="myContext">上下文</param>
|
||||
<param name="sqlSugarClient">sqlsugar实例</param>
|
||||
<param name="tableNames">数据库表名数组,默认空,生成所有表</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.FrameSeed.CreateServices(Blog.Core.Model.Models.MyContext,System.String[])">
|
||||
<member name="M:Blog.Core.Model.Models.FrameSeed.CreateServices(SqlSugar.SqlSugarClient,System.String[])">
|
||||
<summary>
|
||||
生成 Service 层
|
||||
</summary>
|
||||
<param name="myContext">上下文</param>
|
||||
<param name="sqlSugarClient">sqlsugar实例</param>
|
||||
<param name="tableNames">数据库表名数组,默认空,生成所有表</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.FrameSeed.Create_Model_ClassFileByDBTalbe(SqlSugar.SqlSugarClient,System.String,System.String,System.String[],System.String,System.Boolean)">
|
||||
<summary>
|
||||
功能描述:根据数据库表生产Model层
|
||||
作 者:Blog.Core
|
||||
</summary>
|
||||
<param name="sqlSugarClient"></param>
|
||||
<param name="strPath">实体类存放路径</param>
|
||||
<param name="strNameSpace">命名空间</param>
|
||||
<param name="lstTableNames">生产指定的表</param>
|
||||
<param name="strInterface">实现接口</param>
|
||||
<param name="blnSerializable">是否序列化</param>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.FrameSeed.Create_IRepository_ClassFileByDBTalbe(SqlSugar.SqlSugarClient,System.String,System.String,System.String[],System.String)">
|
||||
<summary>
|
||||
功能描述:根据数据库表生产IRepository层
|
||||
作 者:Blog.Core
|
||||
</summary>
|
||||
<param name="sqlSugarClient"></param>
|
||||
<param name="strPath">实体类存放路径</param>
|
||||
<param name="strNameSpace">命名空间</param>
|
||||
<param name="lstTableNames">生产指定的表</param>
|
||||
<param name="strInterface">实现接口</param>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.FrameSeed.Create_IServices_ClassFileByDBTalbe(SqlSugar.SqlSugarClient,System.String,System.String,System.String[],System.String)">
|
||||
<summary>
|
||||
功能描述:根据数据库表生产IServices层
|
||||
作 者:Blog.Core
|
||||
</summary>
|
||||
<param name="sqlSugarClient"></param>
|
||||
<param name="strPath">实体类存放路径</param>
|
||||
<param name="strNameSpace">命名空间</param>
|
||||
<param name="lstTableNames">生产指定的表</param>
|
||||
<param name="strInterface">实现接口</param>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.FrameSeed.Create_Repository_ClassFileByDBTalbe(SqlSugar.SqlSugarClient,System.String,System.String,System.String[],System.String)">
|
||||
<summary>
|
||||
功能描述:根据数据库表生产 Repository 层
|
||||
作 者:Blog.Core
|
||||
</summary>
|
||||
<param name="sqlSugarClient"></param>
|
||||
<param name="strPath">实体类存放路径</param>
|
||||
<param name="strNameSpace">命名空间</param>
|
||||
<param name="lstTableNames">生产指定的表</param>
|
||||
<param name="strInterface">实现接口</param>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.FrameSeed.Create_Services_ClassFileByDBTalbe(SqlSugar.SqlSugarClient,System.String,System.String,System.String[],System.String)">
|
||||
<summary>
|
||||
功能描述:根据数据库表生产 Services 层
|
||||
作 者:Blog.Core
|
||||
</summary>
|
||||
<param name="sqlSugarClient"></param>
|
||||
<param name="strPath">实体类存放路径</param>
|
||||
<param name="strNameSpace">命名空间</param>
|
||||
<param name="lstTableNames">生产指定的表</param>
|
||||
<param name="strInterface">实现接口</param>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.FrameSeed.CreateFilesByClassStringList(System.Collections.Generic.Dictionary{System.String,System.String},System.String,System.String)">
|
||||
<summary>
|
||||
根据模板内容批量生成文件
|
||||
</summary>
|
||||
<param name="ls">类文件字符串list</param>
|
||||
<param name="strPath">生成路径</param>
|
||||
<param name="fileNameTp">文件名格式模板</param>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.MyContext.GetMainConnectionDb">
|
||||
<summary>
|
||||
连接字符串
|
||||
|
@ -884,65 +948,6 @@
|
|||
作 者:Blog.Core
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.MyContext.Create_Model_ClassFileByDBTalbe(System.String,System.String,System.String[],System.String,System.Boolean)">
|
||||
<summary>
|
||||
功能描述:根据数据库表生产Model层
|
||||
作 者:Blog.Core
|
||||
</summary>
|
||||
<param name="strPath">实体类存放路径</param>
|
||||
<param name="strNameSpace">命名空间</param>
|
||||
<param name="lstTableNames">生产指定的表</param>
|
||||
<param name="strInterface">实现接口</param>
|
||||
<param name="blnSerializable">是否序列化</param>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.MyContext.Create_IRepository_ClassFileByDBTalbe(System.String,System.String,System.String[],System.String)">
|
||||
<summary>
|
||||
功能描述:根据数据库表生产IRepository层
|
||||
作 者:Blog.Core
|
||||
</summary>
|
||||
<param name="strPath">实体类存放路径</param>
|
||||
<param name="strNameSpace">命名空间</param>
|
||||
<param name="lstTableNames">生产指定的表</param>
|
||||
<param name="strInterface">实现接口</param>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.MyContext.Create_IServices_ClassFileByDBTalbe(System.String,System.String,System.String[],System.String)">
|
||||
<summary>
|
||||
功能描述:根据数据库表生产IServices层
|
||||
作 者:Blog.Core
|
||||
</summary>
|
||||
<param name="strPath">实体类存放路径</param>
|
||||
<param name="strNameSpace">命名空间</param>
|
||||
<param name="lstTableNames">生产指定的表</param>
|
||||
<param name="strInterface">实现接口</param>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.MyContext.Create_Repository_ClassFileByDBTalbe(System.String,System.String,System.String[],System.String)">
|
||||
<summary>
|
||||
功能描述:根据数据库表生产 Repository 层
|
||||
作 者:Blog.Core
|
||||
</summary>
|
||||
<param name="strPath">实体类存放路径</param>
|
||||
<param name="strNameSpace">命名空间</param>
|
||||
<param name="lstTableNames">生产指定的表</param>
|
||||
<param name="strInterface">实现接口</param>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.MyContext.Create_Services_ClassFileByDBTalbe(System.String,System.String,System.String[],System.String)">
|
||||
<summary>
|
||||
功能描述:根据数据库表生产 Services 层
|
||||
作 者:Blog.Core
|
||||
</summary>
|
||||
<param name="strPath">实体类存放路径</param>
|
||||
<param name="strNameSpace">命名空间</param>
|
||||
<param name="lstTableNames">生产指定的表</param>
|
||||
<param name="strInterface">实现接口</param>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.MyContext.CreateFilesByClassStringList(System.Collections.Generic.Dictionary{System.String,System.String},System.String,System.String)">
|
||||
<summary>
|
||||
根据模板内容批量生成文件
|
||||
</summary>
|
||||
<param name="ls">类文件字符串list</param>
|
||||
<param name="strPath">生成路径</param>
|
||||
<param name="fileNameTp">文件名格式模板</param>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Model.Models.MyContext.GetEntityDB``1">
|
||||
<summary>
|
||||
功能描述:获取数据库处理对象
|
||||
|
|
|
@ -307,11 +307,10 @@
|
|||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Controllers.DbFirstController.#ctor(Blog.Core.Model.Models.MyContext)">
|
||||
<member name="M:Blog.Core.Controllers.DbFirstController.#ctor(SqlSugar.ISqlSugarClient)">
|
||||
<summary>
|
||||
构造函数
|
||||
</summary>
|
||||
<param name="myContext"></param>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Controllers.DbFirstController.GetFrameFiles">
|
||||
<summary>
|
||||
|
@ -319,36 +318,6 @@
|
|||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Controllers.DbFirstController.GetModelFiles">
|
||||
<summary>
|
||||
获取 Model 层文件
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Controllers.DbFirstController.GetIRepositoryFiles">
|
||||
<summary>
|
||||
获取 IRepository 层文件
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Controllers.DbFirstController.GetIServiceFiles">
|
||||
<summary>
|
||||
获取 IService 层文件
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Controllers.DbFirstController.GetRepositoryFiles">
|
||||
<summary>
|
||||
获取 Repository 层文件
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Controllers.DbFirstController.GetServicesFiles">
|
||||
<summary>
|
||||
获取 Services 层文件
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Blog.Core.Controllers.ImgController">
|
||||
<summary>
|
||||
图片管理
|
||||
|
|
|
@ -1,23 +1,26 @@
|
|||
using Blog.Core.Model.Models;
|
||||
using Blog.Core.Common.DB;
|
||||
using Blog.Core.Model;
|
||||
using Blog.Core.Model.Models;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using SqlSugar;
|
||||
using System.Linq;
|
||||
|
||||
namespace Blog.Core.Controllers
|
||||
{
|
||||
[Route("api/[controller]/[action]")]
|
||||
[ApiController]
|
||||
[Authorize(Permissions.Name)]
|
||||
//[Authorize(Permissions.Name)]
|
||||
public class DbFirstController : ControllerBase
|
||||
{
|
||||
private readonly MyContext myContext;
|
||||
private readonly SqlSugarClient _sqlSugarClient;
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
/// </summary>
|
||||
/// <param name="myContext"></param>
|
||||
public DbFirstController(MyContext myContext)
|
||||
public DbFirstController(ISqlSugarClient sqlSugarClient)
|
||||
{
|
||||
this.myContext = myContext;
|
||||
_sqlSugarClient = sqlSugarClient as SqlSugarClient;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -25,66 +28,23 @@ namespace Blog.Core.Controllers
|
|||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public bool GetFrameFiles()
|
||||
public MessageModel<string> GetFrameFiles()
|
||||
{
|
||||
return FrameSeed.CreateModels(myContext)
|
||||
&& FrameSeed.CreateIRepositorys(myContext)
|
||||
&& FrameSeed.CreateIServices(myContext)
|
||||
&& FrameSeed.CreateRepository(myContext)
|
||||
&& FrameSeed.CreateServices(myContext)
|
||||
;
|
||||
var data = new MessageModel<string>() { success = true, msg = "" };
|
||||
BaseDBConfig.MutiConnectionString.Item1.ToList().ForEach(m =>
|
||||
{
|
||||
_sqlSugarClient.ChangeDatabase(m.ConnId.ToLower());
|
||||
data.response += $"库{m.ConnId}-Model层生成:{FrameSeed.CreateModels(_sqlSugarClient)} || ";
|
||||
data.response += $"库{m.ConnId}-IRepositorys层生成:{FrameSeed.CreateIRepositorys(_sqlSugarClient)} || ";
|
||||
data.response += $"库{m.ConnId}-IServices层生成:{FrameSeed.CreateIServices(_sqlSugarClient)} || ";
|
||||
data.response += $"库{m.ConnId}-Repository层生成:{FrameSeed.CreateRepository(_sqlSugarClient)} || ";
|
||||
data.response += $"库{m.ConnId}-Services层生成:{FrameSeed.CreateServices(_sqlSugarClient)} || ";
|
||||
});
|
||||
|
||||
// 切回主库
|
||||
_sqlSugarClient.ChangeDatabase(MainDb.CurrentDbConnId.ToLower());
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取 Model 层文件
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public bool GetModelFiles()
|
||||
{
|
||||
return FrameSeed.CreateModels(myContext);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取 IRepository 层文件
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public bool GetIRepositoryFiles()
|
||||
{
|
||||
return FrameSeed.CreateIRepositorys(myContext);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取 IService 层文件
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public bool GetIServiceFiles()
|
||||
{
|
||||
return FrameSeed.CreateIServices(myContext);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取 Repository 层文件
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public bool GetRepositoryFiles()
|
||||
{
|
||||
return FrameSeed.CreateRepository(myContext);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取 Services 层文件
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public bool GetServicesFiles()
|
||||
{
|
||||
return FrameSeed.CreateServices(myContext);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user