第一步新建项目
选webapi,确定
第二步创建类库
我创建类库主要是用于数据交互,注意框架要和上面的框架一致。我开发的时候用的是两个类库,一层数据交互Data层,一层写逻辑BLL层。每个人开发习惯不同,视情况而定。
配置web.config
添加下面一段代码到web.config,配置数据库。我用的是sqlserver。
<!--数据库配置-->
<connectionStrings>
<add name="conn" connectionString="user id=sa;Password=123456;initial catalog=MS;Server=.;Connect Timeout=30;" providerName="System.Data.SqlClient" />
</connectionStrings>
Data层调用conn,链接数据库
public static readonly string ConnectionString = ConfigurationManager.ConnectionStrings["conn"].ToString();
/// <summary>
/// 返回值为T的操作
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="func"></param>
/// <returns></returns>
internal T UseConnection<T>(Func<DbConnection, T> func)
{
using (var connection = new SqlConnection(ConnectionString))
{
return func(connection);
}
}
public T ExecuteScalar<T>(string sql, object param)
{
return UseConnection(connection =>
{
return connection.ExecuteScalar<T>(sql, param);
});
}
上面的方法可以封装一下方便调用(例)
public int GetPwd(string pwd)
{
var sql = $"select count(*) c from userinfo where password=@pwd";
return ExecuteScalar<int>(sql, new { pwd });
}
BLL层调用Data层,用于写逻辑
private static ProjectBLL _instance;
private static readonly Object Padlock = new Object();
public static ProjectBLL Instance
{
get
{
if (_instance == null)
{
lock (Padlock)
{
_instance = _instance ?? new ProjectBLL();
}
}
return _instance;
}
}
private ProjectBLL() { }
private Datas dal = new Datas();
public ResultJsonModel GetImagesSet()
{
var res = dal.GetImagesSet();
return JsonHelper.ResultJson(SystemError.StaticCode.Success, res);
}