查了一下,可以用命令行生成相应的文件:
Scaffold-DbContext "Server=.\SQLExpressDatabase=SchoolDBTrusted_Connection=True" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
连接字符串放json里面
"ConnectionStrings": {
"MbkDbConstr": "Data Source=(localdb)\\MBKDatabase=MbkTest"
}
参考资料:
网页链接
方法如下:/*
Desc:按指定符号分割字符串,返回分割后的元素个数
Author:LHB
UpdateDate:2016-06-28 16:20
*/
ALTER function [dbo].[Get_StrArrayLength]
(
@str nvarchar(max), --要分割的字符串
@split varchar(10) --分隔符号
)
可以参考dapper源码,或者反编译一下dapper.dll,在dapper之上再封装一层拓展方法,正好最近我也在做这个,下面代码可以参考一下:
using Dapper//封装的拓展类
public static class DapperExtension
{
public static int CExecute(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null)
{
var beginTime = DateTime.Now
return SqlMapper.Execute(cnn, sql, param, transaction, commandTimeout, commandType).ToLog(sql,param, beginTime)
}
public static int CExecute(this IDbConnection cnn, CommandDefinition command)
{
var beginTime = DateTime.Now
return SqlMapper.Execute(cnn, command).ToLog(command.CommandText,command.Parameters,beginTime)
}
……
}
//日志记录拓展方法
private static T ToLog<T>(this T result, string sql, object param, DateTime beginTime, IDbConnection conn =null)
{
//日志记录要异步进行,防止日志记录时报错,影响业务流程
Task.Run(()=> {
var now = DateTime.Now
var log = new LogModel()
{
CreateTime = now,
SqlStr = sql,
ExcuteResult = result.ToJsonString(),
Timespan = (now - beginTime).TotalMilliseconds
}
if (param != null)
{
foreach (var p in param.GetType().GetProperties())
{
log.SqlStr=log.SqlStr.Replace("@"+p.Name,p.GetValue(param).ToString())
}
}
//日志记录到MongoDB中
MongoDbHelper.SetCollection(log, "Log_"+ now.ToString("yyyyMMdd"), "ExcuteLog")
})
return result
} //调用示例:
public int GetInfo(string sql, object param = null)
{
var connStr="...."//数据库连接字符串
using (var conn = new MySqlConnection(connStr))
{
var result = conn.CExecute(sql, param)
return result
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)