1.添加项目(项目名不能设置成SqlSugar否则会报错<已导入具有相同标识 'SqlSugar' 的程序集>这个我也是后面运行才出的问题,更改了过来)
2.添加NuGet包SqlSugarCore(有Core版本要求,我这是3.1版本)
3.配置数据库连接字符串
4.添加上下文类
namespace xx(更改一下命名空间)
{
/// <summary>
/// sqlSugar上下文类
/// </summary>
public class DBSqlSugarContext
{
public ISqlSugarClient Database { get; private set; }
/// <summary>
/// 数据库连接
/// </summary>
public static string dbContext { get; set; }
private readonly string _connectionString;
/// <summary>
///
/// </summary>
public DBSqlSugarContext() : this(dbContext)
{
}
/// <summary>
/// 构造函数
/// </summary>
public DBSqlSugarContext(string connectionString)
{
this._connectionString = connectionString;
this.Database = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = this._connectionString,//数据库连接
DbType = DbType.SqlServer,//数据库类型
IsAutoCloseConnection = true,
InitKeyType = InitKeyType.Attribute
});
this.Database.Ado.IsEnableLogEvent = true;
//生成数据库实体(生成实体放置的目录,该目录的命名空间)
this.Database.DbFirst.CreateClassFile(@"E:\OId\SchoolXueXi\Project\SqlSugar\Models", "SqlSugar.Models");
//指定表名生成实体
//this.Database.DbFirst.Where("Article").CreateClassFile(@"E:\OId\SchoolXueXi\Project\YuanQing.UI\YuanQing.Model", "YuanQing.Model");
//生成的时候如果数据库有设置默认值同步生成。
//可以和其他的结合起来使用其实就是一个IsCreateDefaultValue方法而已。
//this.Database.DbFirst.IsCreateDefaultValue().CreateClassFile(@"E:\OId\SchoolXueXi\Project\YuanQing.UI\YuanQing.Model", "YuanQing.Model");
this.Database.Aop.OnLogExecuting = (sql, pars) => //SQL执行前事件
{
};
this.Database.Aop.OnError = (exp) =>//执行SQL 错误事件
{
};
this.Database.Aop.OnDiffLogEvent = (it) =>
{
};
this.Database.Aop.OnLogExecuted = (sql, pars) => //SQL执行完事件
{
};
}
}
}
5.Startup类的ConfigureServices方法中添加SqlSugar配置
var dbContext = Configuration.GetValue<string>("dbContext");
if (DBSqlSugarContext.dbContext == null)
{
DBSqlSugarContext.dbContext = dbContext;
}
6.测试运行程序生成实体类(VS项目名称不能为SqlSugar,需更改一下,我更改成了SqlSugarDemo)
数据库添加一个表用来测试SqlSugar生成实体
AdminInfo随便存个数据
<--!action="提交方法 name="参数名"-->
<form action="/Home/Index">
用户名: <input type="text" name="LoginName"><br>
密码: <input type="password" name="LoginPwd"><br>
<input type="reset" value="重置">
<input type="submit" name="name" value="提交" /><br>
</form>
运行起来
生成表结构成功
7.测试获取数据
AdminInfo info=Db.Database.Queryable<AdminInfo>()
.Where(a => a.LoginNmae == LoginName && a.LoginPwd == LoginPwd).First();
成功