【发布时间】:2019-07-30 20:13:46
【问题描述】:
我正在使用 Enterprise Library 5.0.505 开发 Web API,但在从数据库中获取字节数组时遇到问题。我的插入语句使用 DbType.Binary 工作得很好,但是当我尝试使用 SqlStringAccessor 返回它时,它出现了 null。
我尝试过研究它,但大多数帖子都使用阅读器,而我的项目不允许这条路线。
我的 Get 方法:
public IEnumerable<User> UserSearch(string username)
{
string sql = "SELECT * FROM Users WHERE Username = @Username";
var accessor = Database.CreateSqlStringAccessor<User>(sql, new NamedParameterMapper("@Username"));
return accessor.Execute(username);
}
我的用户类型的属性:
public int UserId { get; set; }
public string Username { get; set; }
public byte[] SaltedAndHashedPassword { get; set; }
public byte[] Salt { get; set; }
public bool LoggedIn { get; set; }
我的插入代码可以正常工作:
using (DbCommand cmd = Database.GetStoredProcCommand("[HeadCount_Ver01].[dbo].[AddUser]"))
{
Database.AddInParameter(cmd, "@Username", DbType.String, user.Username);
Database.AddInParameter(cmd, "@SaltedAndHashedPassword", DbType.Binary, user.SaltedAndHashedPassword);
Database.AddInParameter(cmd, "@Salt", DbType.Binary, user.Salt);
return Database.ExecuteNonQuery(cmd) > 0;
}
非常感谢任何帮助,谢谢。
【问题讨论】:
-
为什么不用 EF 或 Dapper?
标签: c# sql enterprise-library