????1.???
???????????????????C#??????SQL?????????.???????Щ????е?洢????????????????????.
???????????д洢?????SQL???C#????????????????????????????????Щ?????????
????2.????????
????2.1?????Dapper??????????????????????????SQL:
????SELECT
????a.*
????FROMdbo.ptypea
????INNERJOINdbo.PType_PricebONa.typeId=b.PTypeID
????LEFTJOINdbo.PType_UnitscONa.typeId=c.UnitsId
????WHEREa.typeId=@typeidANDa.CreateDate=@Area
????ANDpreprice1=@preprice1ANDdeleted=@deleted
????????@????????????滻????????(?鷳)????????????SQL????
????2.2?????????????SQLServerProfiler???????SQL

?????????????????е?SQLServer????????е?SQL??????????????????????SQL?????????????е?SQL?????鷳?????????Ctrl+F???????????????????????????????????????鷳.
????3.???????
?????????????????SQL???????????Dapper?????????????SQL?????????????:
publicclassSqlHelper
{
publicDictionary<string??object>Param=newDictionary<string??object>();
publicstringReplaceParam(refstringsql)
{
if(Param.Count==0)
{
returnsql;
}
StringBuildersb=newStringBuilder();
sb.Append(sql);
foreach(variteminParam)
{
varparamName=item.Key;
varparamValue=item.Value;
vartype=paramValue.GetType();
if(type==typeof(string)||type==typeof(DateTime))
{
//?????
sb.Replace($"@{paramName}"??$"'{paramValue}'");
}
elseif(type==typeof(bool))
{
//bool????
if(paramValue.ToString()=="True")
{
sb.Replace($"@{paramName}"??"1");
}
else
{
sb.Replace($"@{paramName}"??"0");
}
}
else
{
//???
sb.Replace($"@{paramName}"??paramValue.ToString());
}
}
sql=sb.ToString();
returnsql;
}
}
???????????:
publicIEnumerable<Ptype>GetPtypeDetail()
{
varsql=@"
SELECTa.*
FROMdbo.ptypea
INNERJOINdbo.PType_PricebONa.typeId=b.PTypeID
LEFTJOINdbo.PType_UnitscONa.typeId=c.UnitsId
WHEREa.typeId=@TypeidANDa.CreateDate=@CreateDate
ANDpreprice1=@preprice1ANDdeleted=@deleted
";
varsqlHelper=newSqlHelper();
sqlHelper.Param.Add("Typeid"??"001");
sqlHelper.Param.Add("CreateDate"??DateTime.Now);
sqlHelper.Param.Add("preprice1"??3.62M);
sqlHelper.Param.Add("deleted"??true);
sqlHelper.ReplaceParam(refsql);
IEnumerable<Ptype>plist=newList<Ptype>();
using(varcon=SQLServerHelper.GetConnection())
{
plist=con.Query<Ptype>(sql);
}
returnplist;
}
????????????Dapper??е?SQL???????SQL????????????????.
????PS:?????????????????滻??Ч????????????????C#????????滻?????????????????????????????????????????????????????????????.
????4.??
???????????Dapper??е?????????@??????SQL??????????滻?????SQL.
???????????????????????:С??????tm?и?XXbug????????.
??????????????????DapperQuery????????

??????????SQL?????????????????SQL???е????????????????滻@?????????????SQLServerProfiler???????????!!!