Как Вы изменяете строку подключения NHIBERNATE на Запрос HTTP?

вы можете использовать этот метод в своем классе приложений

public void createShortCut() {

            Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
            shortcutintent.putExtra("duplicate", false);
            shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));
            Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(),
                    R.drawable.logo);
            shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
            shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext(), SplashActivity.class));
            sendBroadcast(shortcutintent);

        }
    }

и применить это разрешение

    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
8
задан John_ 29 January 2009 в 10:28
поделиться

3 ответа

ISessionFactory. OpenSession () может быть предоставлен IDbConnection.

Другая опция состоит в том, чтобы реализовать IConnectionProvider, который создал бы соответствующие экземпляры IDbConnection в зависимости от некоторого условия (который должен быть глобальным, таким образом представив это решение, не очень чистое).

11
ответ дан 5 December 2019 в 10:44
поделиться

SessionFactory - то, что настраивает Ваши соединения, диалекты, и т.д., поэтому если Вы захотите изменить свою строку подключения, то необходимо будет реконфигурировать. Но, да, Ваш комментарий является правильным. Установка фабрики сессии является одной из самых дорогих операций, таким образом, Вы только хотите сделать это, когда Вы должны и никогда больше.

В Норе nHibernate существуют некоторые действительно большие понятия разговора. Если Вы смотрите на то, как они управляют сессией, Вы могли бы найти некоторые творческие идеи управлять несколькими сессиями через несколько база данных.

У меня есть предположение что то же как принцип @Marc: можно приятно инкапсулировать динамические соединения в поставщике. Смотрите на nhibernate.info Wiki относительно динамических поставщиков соединения. Можно легко создать поставщика, в котором Вы передаете в информации, в которой Вы нуждаетесь для создания сессии, указывающей на базу данных, которой Вы требуете.

Я использую nHibernate 2.0 сверху 100 + базы данных (у всех есть та же схема, но физически разделенные данные), таким образом, это может определенно быть сделано с небольшим TLC ;-)

1
ответ дан 5 December 2019 в 10:44
поделиться

Ну, это может быть хитро, но и я думаю, что это не должно быть сделано, но здесь является идеей:

var cfg = new Configuration(); // Get a new NHibernate Configuration
cfg.SetProperty("connection.connection_string", yourConnectionString); // Alter the property
cfg.Configure(); // Configure with this configuration
var sf = cfg.BuildSessionFactory(); // Get a new ISessionFactory

Я не знаю - ли это лучший метод, но может работать. Вы могли также иметь 2 XML-файла конфигурации и сделать это:

var cfg = new Configuration("hibernate1.cfg.xml"); // OR
var cfg = new Configuration("hibernate2.cfg.xml"); 

Отвечая на комментарии, у Вас может быть несколько фабрик сессии, инициализированных и готовых к употреблению, но это не точно, "изменяют строку подключения". Затем выберите тот, в котором Вы нуждаетесь. Дорогостоящая часть создает объект Конфигурации, и вызов Настраивают ().

Существует также библиотека NHibernate Burrow, которая управляет несколькими сессиями одновременно и выбирает правильную в зависимости от объекта.

var session = new BurrowFramework().GetSession(); // default session
var session = new BurrowFramework().GetSession(typeof(Entity)); // session that manages Entity class
1
ответ дан 5 December 2019 в 10:44
поделиться
Другие вопросы по тегам:

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