私はNHibernateとFluent NHibernateの両方で新しいです。達成したいのは、適切なデータベースプロバイダを選択してボタンをクリックし、存在しない場合はデータベースを生成し、すべてのテーブル、リレーションシップなどを作成することです。NHibernate - SchemaUpdateスキーマ更新がデータベース/スキーマを作成していません
上記の冒頭で私は問題に直面しました。つまり、次のコードはデータベースを作成していません。戻り値としてエラーが発生しています。 同じ状況は、NHibernate with xmlとFluent NHibernateの両方に同じです。 データベースが手動で作成された場合、コードが正常に動作していて、テーブルが作成されています。しかし、それが存在しなければ、そうではない。ここで
はNHibernateのとxmlのアプローチです:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="dialect">NHibernate.Dialect.MsSql2012Dialect</property>
<property name="connection.driver_class">NHibernate.Driver.Sql2012ClientDriver</property>
<property name="connection.connection_string">Server=.\SQLEXPRESS;Database=databaseName;Initial Catalog=databaseName;User id=user;password=xxx</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">create</property>
</session-factory>
</hibernate-configuration>
そしてここでは、流暢NHibernateのアプローチです:
_sessionFactory = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2012
.ConnectionString(@"Server=.\SQLEXPRESS;Database=databaseName;Initial Catalog=databaseName;User id=user;password=xxx")
.ShowSql())
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Entry>())
.ExposeConfiguration(cfg => new SchemaExport(cfg).Create(true, true))
.BuildSessionFactory();
すべてのコメントアプローチ(SchemaUpdateとプロパティを追加する)任意の正の結果が得られませんでした。それでも私は、次のエラーが発生します:
Cannot open database "databaseName" requested by the login. The login failed.Login failed for user 'user'.
私は最終的に私は、私はデータを失うことはないため、しかし、開発にSchemaUpdateを使用する必要があることを認識していますのVisual Studioでの両方MSSQLエクスプレス2012 localdbのため2015年 これを試してみました試したアプローチのいずれかを使用することができます。
このソリューションでは、次のデータベースをサポートしたいと考えています。 MSSQL、Oracle、MySQL、PostgreSQL
私が間違っていることをアドバイスしてください。おかげさまで
おかげさまでStefanにお問い合わせください。私はEFで利用可能なコードの最初の解決策に似た何かがあると思った。 – kbysiec