मैं एक प्रणाली मूल रूप से इस तरह एक प्रश्न करना है जो मिल गया है के रूप में एसक्यूएल स्थानिक प्रकार के साथ साफ-सुथरी का उपयोग करना:एक पैरामीटर
SELECT * FROM MyTable WHERE @parameter.STIntersects(MyGeometryColumn)
यह जब वेनिला एसक्यूएल पैरामीटर्स का उपयोग करने के लिए काफी सरल है, तो आप सिर्फ है एक गैर विशिष्ट तरीके से अपने पैरामीटर बनाने के लिए (जहां बिल्डर चर एक SqlGeometryBuilder जो मैं एक आयत बनाने के लिए उपयोग न करें):
command.Parameters.Add(new SqlParameter
{
UdtTypeName = "geometry",
Value = builder.ConstructedGeometry,
ParameterName = "@paremeter"
});
अब, जब मैं व्यवसायिक उपयोग करते हुए यह करने के लिए प्रयास करते हैं, मैं कोई त्रुटि मिलती है कि यह पैरामीटर के रूप में इसका उपयोग करने का तरीका नहीं समझ सकता है। कोई भी जिसने यह काम किया है, या इसे सक्षम करने के तरीके पर कोई संकेतक? मेरे पास एक वर्कअराउंड है, लेकिन इसमें स्ट्रिंग प्रस्तुति का उपयोग करना और इसे मेरी SQL क्वेरी में ज्यामिति प्रकार में परिवर्तित करना शामिल है। मैं वास्तव में यह नहीं चाहता।
टिप्पणी का उत्तर देने के लिए, मुझे जो त्रुटि मिल रही है वह है 'माइक्रोसॉफ्ट.SqlServer.Types.SqlGeometry का सदस्य पैरामीटर पैरामीटर मान के रूप में उपयोग नहीं किया जा सकता है'। दूसरे शब्दों में, डैपर को पता नहीं है कि एक एसक्यूएलमेट्री ऑब्जेक्ट को पैरामीटर के रूप में कैसे निपटाना है।
public interface IDynamicParameters
{
void AddParameters(IDbCommand command);
}
डैप्पर पहले से ही इस इंटरफ़ेस कहा जाता है की एक डीबी सामान्य कार्यान्वयन है:
आपको क्या त्रुटि मिल रही है? –