Dot Net Core中的SqlCommandBuilder.DeriveParameters [英] SqlCommandBuilder.DeriveParameters in Dot Net Core
问题描述
我正在搬运< g class =" gr_ gr_35 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar multiReplace"数据-GR-ID =" 35 QUOT; id =" 35">旧的< / g> class lib to dot net core。无法使用" SqlCommandBuilder.DeriveParameters(this.Command);"。$
是否有< g class =" gr_ gr_103 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del"数据-GR-ID =" 103" id =" 103">解决< / g>为此在Dot Net< g class =" gr_ gr_136 gr-alert gr_gramm
gr_inline_cards gr_run_anim Style multiReplace"数据-GR-ID =" 136" id =" 136"> Core?< / g>
public CommandBuilder AssignParameters(object p)
{
SqlCommandBuilder.DeriveParameters (this.Command);
如果(p == null)返回此;
var objType = p.GetType();
var props = TypeExtensions.GetProperties(objType).Cast< PropertyInfo>()。ToList();
foreach(this.Command.Parameters中的SqlParameter参数)
{
if(parameter.ParameterName ==" @ RETURN_VALUE" || parameter.Direction == ParameterDirection.Output )
继续;
var paramName = parameter.ParameterName.Remove(0,1);
var prop = props.FirstOrDefault(obj => paramName.Equals(obj.Name,StringComparison.OrdinalIgnoreCase));
if(prop!= null)
{
var propType = prop.PropertyType;
var propValue = prop.GetValue(p);
if(parameter.DbType == DbType.Int32)
{
var intValue = propValue.ToInt();
if(intValue == 0)
{
parameter.Value = DBNull.Value;
}
else
{
parameter.Value = intValue;
}
}
else if(propType == typeof(DateTime))
{
var propVal = propValue.ToDateTime();
parameter.Value = propVal == DateTime.MinValue? null:propValue;
}
else
{
parameter.Value =(propValue == null || String.IsNullOrEmpty(propValue.ToString()))? DBNull.Value:propValue;
}
}
其他
{
parameter.Value = DBNull.Value;
}
}
Hello Pradeep714,
对于.NET Core问题,请选择在https://github.com/dotnet/corefx或http:// forums上发帖.dotnetfoundation.org /
您的具体问题已在此处提出:
https://github.com/dotnet/corefx/issues/ 5501
我看到以下内容"这是在
<中添加的span style ="color:#0066cc">#20883, 它将在2.1.0中发布。 "
祝你好运,
Barry
I was porting <g class="gr_ gr_35 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar multiReplace" data-gr-id="35" id="35">a old</g> class lib to dot net core. unable to use "SqlCommandBuilder.DeriveParameters(this.Command);".
Is there any <g class="gr_ gr_103 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del" data-gr-id="103" id="103">work around</g> for this in Dot Net <g class="gr_ gr_136 gr-alert gr_gramm
gr_inline_cards gr_run_anim Style multiReplace" data-gr-id="136" id="136">Core ?</g>
public CommandBuilder AssignParameters(object p) { SqlCommandBuilder.DeriveParameters(this.Command); if (p == null) return this; var objType = p.GetType(); var props = TypeExtensions.GetProperties(objType).Cast<PropertyInfo>().ToList(); foreach (SqlParameter parameter in this.Command.Parameters) { if (parameter.ParameterName == "@RETURN_VALUE" || parameter.Direction == ParameterDirection.Output) continue; var paramName = parameter.ParameterName.Remove(0, 1); var prop = props.FirstOrDefault(obj => paramName.Equals(obj.Name, StringComparison.OrdinalIgnoreCase)); if (prop != null) { var propType = prop.PropertyType; var propValue = prop.GetValue(p); if (parameter.DbType == DbType.Int32) { var intValue = propValue.ToInt(); if (intValue == 0) { parameter.Value = DBNull.Value; } else { parameter.Value = intValue; } } else if (propType == typeof(DateTime)) { var propVal = propValue.ToDateTime(); parameter.Value = propVal == DateTime.MinValue ? null : propValue; } else { parameter.Value = (propValue == null || String.IsNullOrEmpty(propValue.ToString())) ? DBNull.Value : propValue; } } else { parameter.Value = DBNull.Value; } }
Hello Pradeep714,
For .NET Core issue please choose to post on either https://github.com/dotnet/corefx or http://forums.dotnetfoundation.org/
Your specific question has already been asked here:
https://github.com/dotnet/corefx/issues/5501
And I see the following "This was added in #20883 ,It will ship in 2.1.0. "
Best regards,
Barry
这篇关于Dot Net Core中的SqlCommandBuilder.DeriveParameters的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!