एक .NET OR/M के साथ कॉन्फ़िगर करने योग्य तालिका उपसर्ग?

In a web application like wiki or forums or blogging software, it is often useful to store your data in a relational database. Since many hosting companies offer a single database with their hosting plans (with additional databases costing extra) it is very useful for your users when your database objects (tables, views, constraints, and stored procedures) have a common prefix. It is typical for applications aware of database scarcity to have a hard-coded table prefix. I want more, however. Specifically, I'd like to have a table prefix that users can designate—say in the web.config file (with an appropriate default, of course).

चूंकि मुझे हाथ से CRUD संचालन कोडिंग से नफरत है, इसलिए मैं एक सक्षम के माध्यम से काम करना पसंद करता हूं या/एम और LINQ से SQL, Subsonic, और ADO.Net का उपयोग (और आनंद लिया) है। मुझे एक नई परियोजना में कुछ थ्रैश हो रहा है, हालांकि, जब उपयोगकर्ता की web.config फ़ाइल में टेबल उपसर्ग डालने की बात आती है। क्या कोई नेट-आधारित OR/M उत्पाद है जो इस परिदृश्य को सुंदर ढंग से संभाल सकता है?

सबसे अच्छा मैं अब तक आने में सक्षम हूं, बाहरी मैपिंग फ़ाइल के साथ LINQ से SQL का उपयोग कर रहा हूं जिसे मुझे किसी भी तरह से अभी तक काल्पनिक वेब.कॉन्फिग सेटिंग के आधार पर अपडेट करना होगा।

किसी के पास बेहतर समाधान है? मैंने इसे एंटिटी फ्रेमवर्क में करने की कोशिश की, लेकिन यह जल्दी से एक गड़बड़ में बदल गया। (ईएफ के साथ मेरी अपरिचितता के कारण? संभवतः।) SubSonic के बारे में कैसे? क्या कोड कोड पीढ़ी के अलावा टेबल तालिका उपसर्ग लागू करने का विकल्प है?

0
ro fr bn

3 उत्तर

LightSpeed allows you to specify an INamingStrategy that lets you resolve table names dynamically at runtime.

0
जोड़ा

तालिका उपसर्ग का उपयोग करने के बजाय एक एप्लिकेशन उपयोगकर्ता है जो schema (एमएस एसक्यूएल 2005 या ऊपर) में है।

इसका मतलब है कि इसके बजाए:

select * from dbo.clientAProduct
select * from dbo.clientBroduct

आपके पास:

select * from clientA.Product
select * from clientB.Product
0
जोड़ा

मैंने अब शोध किया है कि यह एंटीटी फ्रेमवर्क और LINQ से SQL में और प्रत्येक में आवश्यक चरणों को दस्तावेज किया गया । यह उत्तर देने से काफी लंबा है, इसलिए मैं इसे डुप्लिकेट करने के बजाय उत्तर के लिंक के साथ संतुष्ट रहूंगा। यह प्रत्येक के लिए अपेक्षाकृत शामिल है, लेकिन LINQ से SQL अधिक लचीला समाधान है और यह भी लागू करने के लिए सबसे आसान है।

0
जोड़ा