Сведения о вопросе

SOON

13:59, 16th August, 2020

Теги

.net   orm    

Настраиваемые префиксы таблиц с помощью .Net OR/M?

Просмотров: 426   Ответов: 3

В веб-приложениях, таких как wiki, форумах или блогах, часто бывает полезно хранить данные в реляционной базе данных. Поскольку многие хостинг-компании предлагают единую базу данных со своими планами размещения (с дополнительными базами данных, стоящими дополнительно), это очень полезно для ваших пользователей, когда ваши объекты базы данных (таблицы, представления, ограничения и хранимые процедуры) имеют общий префикс. Это типично для приложений, знающих о дефиците базы данных, чтобы иметь жестко закодированный префикс таблицы. Однако я хочу большего. В частности, я хотел бы иметь префикс таблицы, который пользователи могут designate—say в файле web.config (с соответствующим значением по умолчанию, конечно).

Поскольку я ненавижу кодирование операций CRUD вручную, я предпочитаю работать через компетентный OR/M и использовал (и наслаждался) LINQ до SQL, Subsonic и ADO.Net. Однако у меня есть некоторый трэш в новом проекте, когда речь заходит о том, чтобы поместить префикс таблицы в файл пользователя web.config. Существуют ли какие-либо продукты на основе .Net или/M, которые могут элегантно обрабатывать этот сценарий?

Лучшее, что я смог придумать до сих пор,-это использовать LINQ для SQL с внешним файлом сопоставления, который мне нужно было бы обновить каким-то образом на основе пока еще гипотетической настройки web.config.

У кого-нибудь есть лучшее решение? Я попытался сделать это в Entity Framework, но это быстро превратилось в беспорядок. (Из-за моего незнания EF? Возможно.) Как насчет SubSonic? Есть ли у него возможность применить префикс таблицы, кроме того, во время генерации кода?



  Сведения об ответе

DO__IT

13:50, 2nd August, 2020

Я теперь изученный, что это берет, чтобы сделать это в рамках сущности и LINQ для SQL и документированных мер, необходимых каждой . Это намного дольше, чем ответы здесь, как правило, поэтому я буду довольствоваться ссылкой на ответ, а не дублировать его здесь. Это относительно сложно для каждого, но LINQ - SQL является более гибким решением, а также самым простым для внедрения.


  Сведения об ответе

lesha

06:29, 13th August, 2020

LightSpeed позволяет указать INamingStrategy , который позволяет динамически разрешать имена таблиц во время выполнения.


  Сведения об ответе

DINO

17:05, 9th August, 2020

Вместо того, чтобы использовать префиксы таблиц вместо этого есть пользователь приложения, который принадлежит к schema (в MS Sql 2005 или выше).

Это означает, что вместо:

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

У тебя есть:

select * from clientA.Product
select * from clientB.Product


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться