Dapper.NET
DbGeography और DbGeometry का उपयोग करना
खोज…
कॉन्फ़िगरेशन की आवश्यकता है
आवश्यक
Microsoft.SqlServer.Types
असेंबली स्थापित करें; वे डिफ़ॉल्ट रूप से स्थापित नहीं हैं, और Microsoft से यहां "Microsoft® SQL Server 2012 के लिए Microsoft® सिस्टम CLR प्रकार" के रूप में उपलब्ध हैं - ध्यान दें कि x86 और x64 के लिए अलग-अलग इंस्टॉलर हैं।Dapper.EntityFramework
(या मजबूत-नामित समकक्ष) स्थापित करें; यह IDE के "प्रबंधित NuGet पैकेज ..." UI, या पैकेज प्रबंधक कंसोल पर) के माध्यम से किया जा सकता है:install-package Dapper.EntityFramework
आवश्यक विधानसभा बाइंडिंग पुनर्निर्देशन जोड़ें; इसका कारण यह है कि Microsoft विधानसभाओं के v11 को जहाज करता है, लेकिन Entity Framework v10 के लिए पूछता है; आप
<configuration>
तत्व के तहतapp.config
याweb.config
में निम्नलिखित जोड़ सकते हैं:<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" /> <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime>
नए प्रकार के हैंडलर्स के बारे में "डैपर" बताएं, जो कि (आपके स्टार्टअप में कहीं भी हो, इससे पहले कि वह डेटाबेस का उपयोग करने की कोशिश करता है):
Dapper.EntityFramework.Handlers.Register();
ज्यामिति और भूगोल का उपयोग करना
एक बार प्रकार हैंडलर पंजीकृत होने के बाद, सब कुछ स्वचालित रूप से काम करना चाहिए, और आपको इन प्रकारों को या तो पैरामीटर या रिटर्न मान के रूप में उपयोग करने में सक्षम होना चाहिए:
string redmond = "POINT (122.1215 47.6740)";
DbGeography point = DbGeography.PointFromText(redmond,
DbGeography.DefaultCoordinateSystemId);
DbGeography orig = point.Buffer(20); // create a circle around a point
var fromDb = connection.QuerySingle<DbGeography>(
"declare @geos table(geo geography); insert @geos(geo) values(@val); select * from @geos",
new { val = orig });
Console.WriteLine($"Original area: {orig.Area}");
Console.WriteLine($"From DB area: {fromDb.Area}");