无法从
NHibernate.Driver.SqlServerCeDriver, NHibernate, Version=3.3.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4
创建驱动程序。
内在的例外: 找不到程序集System.Data.SqlServerCe中的IDbCommand和IDbConnection实现。确保程序集System.Data.SqlServerCe位于应用程序目录或全局程序集缓存中。如果程序集位于GAC中,请使用应用程序配置文件中的元素指定程序集的全名。
这是我尝试使用流畅的nHibernate时出现的错误!
我尝试通过配置的简单示例与本地数据库不兼容 使用这个dlls。
我的代码:
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 !!!!
答案 0 :(得分: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.
答案 1 :(得分:1)
如果您来自.net核心,并且收到错误消息
程序集中的IDbCommand和IDbConnection实现 找不到System.Data.SqlServerCe。确保组装 System.Data.SqlServerCe位于应用程序目录中或 全局程序集缓存。如果程序集在GAC中,请使用元素 在应用程序配置文件中指定 组装。
假设您已通过NuGet安装了NHibernate,则需要确保已安装适当的Sql软件包。有几个非正式的System.Data.SqlServerCe
。就我而言,我需要System.Data.SqlClient