【C#】预编译SQL

C#中预编译SQL方法如下:

1
2
// System.Data.Entity.Database
int ExecuteSqlCommand(string sql, params object[] parameters);

使用EF6框架,仓库使用生成的数据库上下文:

1
private EFDbContext dbctx = new EFDbContext();

使用示例:

1
2
3
4
5
// 删除tableA中,name以"$"结尾的数据
string sql = "DELETE FROM tableA WHRER name like \"%@sign\"";
int result = dbctx.Database.ExecuteSqlCommand(sql,
new SqlParameter("sign", "$")
);

查询方法,如下:

1
2
3
4
5
6
7
8
var parameters = new SqlParameter[] {
new SqlParameter("name", name),
new SqlParameter("age", age)
};

string sql = $"select * from user where name = @name and age = @age";

var l = db.Database.SqlQuery<User>(sql, parameters).ToList();