Дозвуковой - Как использовать Схему SQL / имя Владельца как часть пространства имен?

Вы не поймали правильную линию.

int numAthletes = Integer.parseInt(handleInput.getText().toString());

Это строка, вызывающая исключение, но вы поместили ее за пределы блока try {}.

6
задан CResults 16 April 2009 в 07:21
поделиться

4 ответа

Я собирался также предложить подход с несколькими поставщиками. Но большая часть сантехники уже в дозвуковой собственности. Если вы отредактируете пару строк в CS_ClassTemplate.aspx, вы можете создать пространство имен для каждого профиля владельца. Измените строку 58 (я использую v2.1) на

namespace <%=provider.GeneratedNamespace%><%=owner%>

, где владелец -

string owner = "." + tbl.SchemaName;
if(owner == ".dbo")
  owner = "";

. Вы поставили это выше, около строки 14. Таким образом, вы можете создать пространство имен для каждого владельца, например: Northwind.Suppliers, Northwind.Customers, и т. Д. Я оставил dbo как Northwind, чтобы все тесты компилировались без большого редактирования. Я выполнил простой запрос выбора и думаю, что он будет работать так, как вы хотите.

6
ответ дан 9 December 2019 в 22:39
поделиться

Вы можете сделать это и в 3.0, используя наши шаблоны t4 (но это только 3.5). Это действительно хорошая обратная связь - возможно, мы должны встроить ее по умолчанию!

Рад, что вы получили некоторую помощь здесь.

3
ответ дан 9 December 2019 в 22:39
поделиться

Вы можете попробовать создать отдельных провайдеров, имеющих одинаковое подключение к базе данных, например:

<SubSonicService defaultProvider="DBData">
<providers>
<clear/>
     <add name="DBData" type="Subsonic.SqlDataProvider, SubSonic" connectionStringName="LocalSqlServer" generatedNamespace="DBData" includeTableList="table_a,table_b" spStartsWith="app,get,set" viewStartsWith="v_" />
     <!--CMS Provider-->
     <add name="CMS" type="SubSonic.SqlDataProvider, SubSonic" connectionStringName="LocalSqlServer" generatedNamespace="CMS" stripTableText="CMS_" includeTableList="CMS_Content,CMS_Page" useSPs="false"/>
</providers>
</SubSonicService>

Я не Я думаю, что вы можете использовать саму схему в качестве ключа таким образом, но вы могли бы, по крайней мере, обойти эту проблему с помощью комбинации includeTableList и generateNamespace. Вы сказали, что у вас нет повторяющихся имен таблиц в разных схемах, поэтому это может сработать.

1
ответ дан 9 December 2019 в 22:39
поделиться

Просто для того, чтобы вы знали, у меня это сейчас работает - или, по крайней мере, компиляция! :-) Чтобы заставить решение владельца работать полностью, хотя вам нужно будет внести дополнительные изменения в шаблон класса, так как в противном случае функции таблиц / ключей находятся в неправильном пространстве имен.

Я также взломал шаблон хранимой процедуры. Я не мог (за короткое время) понять, как разделить отдельные файлы / пространства имен для каждого владельца, поэтому вместо этого я поставил перед каждой функцией sp префикс владельца и подчеркивания.

Однако на всякий случай вы есть та же проблема, которую вы знаете, ее можно исправить.

Ed

1
ответ дан 9 December 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: