1

からドライバを作成できませんでしたNHibernate.Driver.SqlServerCeDriver, NHibernate, Version=3.3.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4

内部例外: アセンブリ System.Data.SqlServerCe 内の IDbCommand および IDbConnection の実装が見つかりませんでした。アセンブリ System.Data.SqlServerCe がアプリケーション ディレクトリまたはグローバル アセンブリ キャッシュにあることを確認します。アセンブリが GAC にある場合は、アプリケーション構成ファイルの要素を使用して、アセンブリの完全な名前を指定します。

これは、流暢な nHibernate を使用しようとすると発生するエラーです。

このdllを使用したローカルデータベースでは構成がうまく機能しないため、簡単な例を試してみました。

私のコード:

private static String ConnectionString = "Data Source = Database1.sdf";

public static ISessionFactory CreateSessionFactory()
{
        return Fluently.Configure()
            .Database(MsSqlCeConfiguration.Standard
            .ConnectionString(ConnectionString)
            .Driver<NHibernate.Driver.SqlServerCeDriver>()
            .Dialect<NHibernate.Dialect.MsSqlCeDialect>())
            .Mappings(m => m.FluentMappings.AddFromAssembly(System.Reflection.Assembly.GetExecutingAssembly()))
            .ExposeConfiguration(BuildSchema)
            .ExposeConfiguration(x => x.SetProperty("connection.release_mode", "on_close"))
            .BuildSessionFactory();
}

private static void BuildSchema(Configuration configuration)
{
        SchemaExport schemaExport = new SchemaExport(configuration);
        schemaExport.Execute(false, true, false);
}

ありがとうございました!それは非常に重要です!

buildsessionfactory で壊れていることがわかりました...helpppp!!!!

4

2 に答える 2

6

.net コアからこれにアクセスしている場合、エラー メッセージが表示されます。

アセンブリ System.Data.SqlServerCe 内の IDbCommand および IDbConnection の実装が見つかりませんでした。アセンブリ System.Data.SqlServerCe がアプリケーション ディレクトリまたはグローバル アセンブリ キャッシュにあることを確認します。アセンブリが GAC にある場合は、アプリケーション構成ファイルの要素を使用して、アセンブリの完全な名前を指定します。

NuGet 経由で NHibernate をインストールしたと仮定すると、適切な Sql パッケージがインストールされていることを確認する必要があります。そこにはいくつかの非公式System.Data.SqlServerCeがあります。私の場合、必要でしたSystem.Data.SqlClient

于 2018-11-15T14:56:30.187 に答える
2

bin ディレクトリに NHibernate の Version=3.3.0.4000 がありますか? bin ディレクトリに別のビルドの NHibernate があるようです。

そこにあることが確実な場合は、参照が正しいかどうかを確認してください。

プロジェクトに次の参照がありますか。

"System.Data.SqlServerCe"

これは次のディレクトリにあります。

"C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Desktop\System.Data.SqlServerCe.dll"

以下があることを確認してください。

"Copy Local" to true.
于 2012-06-01T12:02:19.213 に答える