Prefixele tabelă configurabile cu .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).

Deoarece nu-mi place codarea operațiunilor CRUD cu mâna, prefer să lucrez printr-o echipă competentă OR/M și au folosit (și sa bucurat) LINQ la SQL, Subsonic și ADO.Net. Cu toate acestea, am ceva thrash într-un nou proiect, când vine vorba de a pune un prefix de tabel în fișierul web.config al unui utilizator. Există produse OR/M bazate pe NET care pot gestiona elegant acest scenariu?

Cel mai bun lucru pe care am reușit să-l vină până acum este să utilizez LINQ to SQL cu un fișier extern de cartografiere pe care ar trebui să-l actualizez cumva pe baza unei setări web.config ca ipotetice.

Oricine are o soluție mai bună? Am încercat să se întâmple în Entity Framework, dar asta sa transformat rapid într-o mizerie. (Datorita necunoscerii mele cu EF? Posibil.) Ce zici de SubSonic? Are o opțiune de a aplica un prefix de tabel, pe lângă timpul de generare a codului?

0
fr hi bn

3 răspunsuri

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

0
adăugat

Mai degrabă decât să folosească prefixele de tabel, trebuie să aveți un utilizator de aplicație care aparține unei scheme (în MS SQL 2005 sau mai recent).

Aceasta înseamnă că în loc de:

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

Tu ai:

select * from clientA.Product
select * from clientB.Product
0
adăugat

Am cercetat acum ce este nevoie pentru a face acest lucru atât în ​​Entity Framework, cât și în LINQ to SQL și a documentat pașii necesari în fiecare . Este mult mai mult decât răspunsurile aici tind să fie așa că voi fi mulțumit de o legătură cu răspunsul, mai degrabă decât să îl duplic aici. Este relativ implicat pentru fiecare, dar LINQ to SQL este soluția mai flexibilă și, de asemenea, cea mai ușoară implementare.

0
adăugat