在我的项目中,我必须从 SQL 中检索大量数据并将数据映射到对象字段;像这样的东西:
cu.UnitName = dr["UnitName"].ToString().Trim();
cu.LocalId = DbUtil.RemoveNull(dr["LocalID"], "");
cu.DatabaseName = DbUtil.RemoveNull(dr["DatabaseName"], "");
cu.DatabaseServer = DbUtil.RemoveNull(dr["DatabaseServer"], "");
cu.UserName = DbUtil.RemoveNull(dr["UserName"], "");
cu.Password = DbUtil.RemoveNull(dr["Password"], "");
cu.RoleId = DbUtil.RemoveNull(dr["RoleId"], 0);
以下是DbUtil.RemoveNull
(int
版本,string
版本类似):
public static int RemoveNull(object data, int defaultValue)
{
if (data is DBNull || data == null)
return defaultValue;
return int.Parse(data.ToString());
}
所以我想知道 SQL 是否COALESCE
会ISNULL
更快地完成同样的工作。有人做过类似的比较吗?哪种方式会更有效率?