LINQ-to-SQL यूडीएफ के साथ उपयोग का समर्थन करता है, यदि आपका यही मतलब है। बस यूडीएफ को डिजाइनर सतह पर खींचें और आप कर चुके हैं। यह डेटा-संदर्भ पर एक मिलान विधि बनाता है, चिह्नित [Function(..., IsComposable=true)]
या इसी तरह, LINQ-to-SQL को बताता है कि यह क्वेरी में इसका उपयोग कर सकता है (ध्यान दें कि ईएफ इस उपयोग का समर्थन नहीं करता है)।
var qry = from cust in ctx.Custs
select new {Id = cust.Id, Value = ctx.GetTotalValue(cust.Id)};
जो की तरह TSQL कुछ हो जाएगा:
SELECT t1.Id, dbo.MyUdf(t1.Id)
FROM CUSTOMER t1
(या वहाँ-abouts)
फिर आप की तरह अपने प्रश्न में यह प्रयोग करेंगे।
तथ्य यह है कि यह संगत है इसका मतलब है कि आप प्रश्नों में मूल्य का उपयोग कर सकते हैं - उदाहरण के लिए Where()
/WHERE
- और इसलिए सर्वर से वापस लाए गए डेटा को कम करें (हालांकि स्पष्ट रूप से यूडीएफ को अभी भी निष्पादित करने की आवश्यकता होगी कुछ रास्ता)।
Here's a similar example, डेटा-संदर्भ पर उपयोग पर एक छद्म-यूडीएफ दिखाते हुए, यह दर्शाता है कि विधि का सी # संस्करण उपयोग नहीं किया जाता है।
असल में, मैं वर्तमान में इस तरह के यूडीएफ को "मॉडल से बाहर" डेटा को एक संगत तरीके से प्रदान करने के लिए देख रहा हूं - यानी सिस्टम के एक विशेष भाग को कुछ डेटा तक पहुंच की आवश्यकता होती है (जो एक ही डेटाबेस में होती है) वास्तव में एक ही मॉडल का हिस्सा नहीं है, लेकिन जो मैं दिलचस्प तरीके से JOIN
करना चाहता हूं। मेरे पास इस उद्देश्य के लिए मौजूदा एसपी भी हैं ... इसलिए मैं उन एसपी को टैब्यूलर यूडीएफ में पोर्ट करने के लिए देख रहा हूं, जो आउट-ऑफ-मॉडल डेटा के आस-पास अनुबंध/अमूर्तता का स्तर प्रदान करता है। इसलिए क्योंकि यह मेरे मॉडल का हिस्सा नहीं है, मैं इसे केवल यूडीएफ के माध्यम से प्राप्त कर सकता हूं - फिर भी मैं इसे अपने नियमित मॉडल के साथ लिखने की क्षमता बनाए रखता हूं।
स्रोत
2008-11-11 15:33:15
हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। – gotqn
@gotqn: दरअसल, और मैं निश्चित रूप से आज ऐसा करूँगा। ध्यान रखें कि यह जवाब स्टैक ओवरफ्लो की बचपन में पोस्ट किया गया था ... –