मैं एक संग्रहीत प्रक्रिया कोई डिफ़ॉल्ट मान के साथ एक पैरामीटर है कि राशि के साथ एक अशक्त पैरामीटर पारित करने के लिए है, लेकिन यह शून्य हो सकता है। लेकिन मैं यह नहीं समझ सकता कि डैपर के साथ कैसे गुजरना है। मैं इसे एडीओ में ठीक कर सकता हूं।कैसे डैप्पर
connection.Execute("spLMS_UpdateLMSLCarrier", new { **RouteId = DBNull.Value**, CarrierId = carrierID, UserId = userID, TotalRouteRateCarrierId = totalRouteRateCarrierId },
commandType: CommandType.StoredProcedure);
अपवाद:
System.NotSupportedException was caught
Message=The member RouteId of type System.DBNull cannot be used as a parameter value
Source=Dapper
StackTrace:
at Dapper.SqlMapper.LookupDbType(Type type, String name) in C:\Dev\dapper-git\Dapper\SqlMapper.cs:line 348
at Dapper.SqlMapper.CreateParamInfoGenerator(Identity identity) in C:\Dev\dapper-git\Dapper\SqlMapper.cs:line 1251
at Dapper.SqlMapper.GetCacheInfo(Identity identity) in C:\Dev\dapper-git\Dapper\SqlMapper.cs:line 908
at Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType) in C:\Dev\dapper-git\Dapper\SqlMapper.cs:line 532
at Rating.Domain.Services.OrderRatingQueueService.UpdateLMSLCarrier(Int32 totalRouteRateCarrierId, Int32 carrierID, Int32 userID) in C:\DevProjects\Component\Main\Source\Rating\Source\Rating.Domain\Services\OrderRatingQueueService.cs:line 52
at Benchmarking.Program.OrderRatingQueue() in C:\DevProjects\Component\Main\Source\Benchmarking\Source\Benchmarking\Program.cs:line 81
at Benchmarking.Program.Main(String[] args) in C:\DevProjects\Component\Main\Source\Benchmarking\Source\Benchmarking\Program.cs:line 28
InnerException:
RouteId बंद छोड़ा नहीं जा सकता, मुझे एक त्रुटि का कहना है कि यह आवश्यक है देता है। नियमित नल का उपयोग नहीं कर सकता है या तो मुझे एक और त्रुटि देता है। संग्रहीत प्रक्रिया को बदल नहीं सकते हैं, यह मेरे नहीं है।
RouteId किस प्रकार है? – driis
यह एक पूर्णांक है। और इससे पहले कि आप कुछ भी कहते हैं, याद है, मैं कोई अपवाद नहीं है यह सिर्फ ADO में ठीक कर सकते हैं। –