Существует довольно четкая документация:
Таким образом, имя схемы вы можете в основном установить для каждого вида класса/таблицы:
public MyEntityMap()
{
...
Schema("mySchema");
}
По умолчанию может установить следующим образом:
MsSqlConfiguration.MsSql2005
.UseOuterJoin()
.DefaultSchema("dbo");
И это некоторое поколение на месте, а также:
private static ISessionFactory CreateSessionFactory()
{
return Fluently.Configure()
.Database(
SQLiteConfiguration.Standard
.UsingFile("firstProject.db")
)
.Mappings(m =>
m.FluentMappings.AddFromAssemblyOf<Program>())
.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();
}
private static void BuildSchema(Configuration config)
{
// delete the existing db on each run
if (File.Exists(DbFile))
File.Delete(DbFile);
// this NHibernate tool takes a configuration (with mapping info in)
// and exports a database schema from it
new SchemaExport(config)
.Create(false, true);
}
ПРОДЛИТЕ: Как создать сама схема? (например mySchemaName
)
С НВМ мы можем ввести этот внедренный ресурс:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
namespace="MyNamespace" assembly="MyAssembly">
<database-object>
<create >
IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'mySchemaName')
EXEC('CREATE SCHEMA mySchemaName')
GO
</create>
<drop></drop>
</database-object>
</hibernate-mapping>
, если этот сценарий будет включен в беглую конфигурацию, как первые, он будет создавать схемы для нас:
Схема («mySchema»); этот оператор говорит, что эта таблица принадлежит этой Scehma (но схема уже должна присутствовать в DB). Насколько мне известно, этот оператор не создает новую схему в базе данных. правильно ? – Sumit
Я вижу ... теперь, что вы имеете в виду ... Я не помню, как я это решил. –
Я нашел это. Мы можем использовать специальные объекты базы данных для предоставления специальных специальных скриптов ... Надеюсь, это поможет;) Наслаждайтесь потрясающим NHibenrate –