C# 列表<;模型>;允许DBNull
我有以下代码:C# 列表<;模型>;允许DBNull,c#,list,linq,C#,List,Linq,我有以下代码: public static List<ResponseSupplier> Feza_ReturnSuppliers(string country, string locale, string rtype, string scat, string sscat, string bill, int? comp, double? inc, int? loi, bool? fc, int? hf) { string query = string.Form
public static List<ResponseSupplier> Feza_ReturnSuppliers(string country, string locale, string rtype, string scat, string sscat, string bill, int? comp, double? inc, int? loi, bool? fc, int? hf)
{
string query = string.Format(Queries[SqlQueries.returnquery], country, locale, rtype, scat, sscat, bill, comp, inc, loi, fc, hf);
IList<ExpandoObject> suppliersRaw = DatabaseHelper.MultiResponseComplex(conn, query,
new List<string>
{ "SupID",
"SupName",
"Tlabel",
"Tcode",
"dcstatic",
"dcur",
"dse",
"ltz",
"st",
"isamp",
"minf",
"sf",
"cpt",
"Scoring",
"TrustCoefficient",
"ApiIntegrated",
"fapi"
});
return suppliersRaw.Select(e => new ResponseSupplier
{
SupID = (((dynamic)e).SupID.ToString()) as string,
SupName = (((dynamic)e).SupName) as string,
Tlabel = (((dynamic)e).TierLabel) as string,
Tcode = (int?)(((dynamic)e).Tcode),
dcstatic = (double?)(((dynamic)e).dcstatic),
dcur = (((dynamic)e).dcur) as string,
dse = (((dynamic)e).dse) as string,
ltz = (((dynamic)e).ltz) as string,
st = (((dynamic)e).st) as string,
isamp = (bool?)(((dynamic)e).isamp),
minf = (double?)(((dynamic)e).minf),
sf = (double?)(((dynamic)e).sf),
cpt = (string)(((dynamic)e).cpt),
Scoring = (double?)(((dynamic)e).Scoring),
TrustCoefficient = (double?)(((dynamic)e).TrustCoefficient),
ApiIntegrated = (bool?)(((dynamic)e).ApiIntegrated),
fapi = (bool?)(((dynamic)e).fapi)
}).ToList();
要允许DBNull并在结果中显示Scoring=Null?请尝试以下操作:
Scoring = ((dynamic)e).Scoring is DBNull ? null : (double)(((dynamic)e).Scoring),
TrustCoefficient = (dynamic)e).TrustCoefficient is DBNull ? null : (double)(((dynamic)e).TrustCoefficient),
你需要检查每个列值是否是DBNull 可能的副本,也可以考虑使用一个类似于ORM的PATAPOCO或DAPER来自动执行这个操作。看起来真正的问题是<代码> MuleRealthCopyFix< /C> >它做什么?为什么不使用匿名类型或像Dapper这样的microORM,这样就不需要所有这些强制转换和转换了?
Scoring = ((dynamic)e).Scoring is DBNull ? null : (double)(((dynamic)e).Scoring),
TrustCoefficient = (dynamic)e).TrustCoefficient is DBNull ? null : (double)(((dynamic)e).TrustCoefficient),