You spotted the inner exception that said you need to use <qualifyAssembly> if System.Data.SqlServerCe is deployed in the GAC. Have you tried that?
FYI docs for <qualifyAssembly> are at http://msdn.microsoft.com/en-us/library/cd71chf0.aspx. There's an example of someone using it for Firebird at http://stackoverflow.com/questions/379748/how-do-i-setup-nhibernate-with-visual-studio-and-firebird. Cheers, John On Jun 1, 8:49 pm, Dathan Bennett <[email protected]> wrote: > Actually, this might be an NH issue. Looking up the documentation for > Assembly.Load(string), I see "Loads an assembly given the long form of its > name. " Sure enough, when I replace my test case > (Assembly.Load("System.Data.SqlServerCe");) with the long version of the > assembly name (Assembly.Load("System.Data.SqlServerCe, Version=3.5.1.0, > Culture=neutral, PublicKeyToken=89845dcd8080cc91");) it works fine. But the > NH call that throws the error uses the first call. Is this a bug in > NHibernate, or is my system just missing a config step that allows it to > resolve "System.Data.SqlServerCe" to the appropriate assembly? > > ~Dathan > > > > On Mon, Jun 1, 2009 at 3:25 AM, Artur <[email protected]> wrote: > > > Hi > > > Are you sure you want to rely on the necessary assemblies being in the > > GAC? > > I think, this way you lose some control over your application and > > expose yourself to various problems, e.g. versioning. > > > Sql Server Ce can be privately deployed with the application. You can > > find many materials on this on the web. > > A good source of information on SqlServerCe is Steve Lasker's blog, > > for example you can find info on private deployment in this blog post: > > >http://blogs.msdn.com/stevelasker/archive/2008/10/22/privately-deploy... > > > Artur Dorochowicz > > > On 1 Cze, 05:26, Dathan Bennett <[email protected]> wrote: > > > I've narrowed it down to the ConnectionDriver.ConfigureDriver method. > > The > > > call to ReflectorHelper.ClassForName returns what looks like the right > > > class, but then Activator.CreateInstance throws a > > TargetInvocationException > > > with the InnerException being one of NHibernate.HibernateException with > > > message "The IDbCommand and IDbConnection implementation in the assembly > > > System.Data.SqlServerCe could not be found. Ensure that the assembly > > > System.Data.SqlServerCe is located in the application directory or in the > > > Global Assembly Cache. If the assembly is in the GAC, use > > <qualifyAssembly/> > > > element in the application configuration file to specify the full name of > > > the assembly." > > > > The innermost exception was thrown by ReflectHelper.TypeFromAssembly at a > > > call to Assembly.Load("System.Data.SqlServerCe"): > > FileNotFoundException... > > > I dunno why it would fail to find the assembly, though. It's not a > > > framework version mismatch, and I'm pretty sure the SqlServerCe assembly > > is > > > in the GAC... I stuck an identical line (Assembly assy = > > > Assembly.Load("System.Data.SqlServerCe");) into the test program, and it > > > failed there, too. This is clearly not an NHibernate problem -- is this > > a > > > system configuration issue? Has anyone encountered it before? > > > > ~Dathan > > > > On Sun, May 31, 2009 at 9:14 PM, Dathan <[email protected]> wrote: > > > > > I'm trying to port a project I've previously had running against a SQL > > > > Server 2005 database to use SQL Server CE instead. I'm trying to use > > > > the following code: > > > > > configuration = new Configuration(); > > > > > configuration.SetProperty > > > > (NHibernate.Cfg.Environment.ConnectionDriver, > > > > "NHibernate.Driver.SqlServerCeDriver"); > > > > configuration.SetProperty > > > > (NHibernate.Cfg.Environment.Dialect, > > > > "NHibernate.Dialect.MsSqlCeDialect"); > > > > configuration.SetProperty > > > > (NHibernate.Cfg.Environment.ConnectionProvider, > > > > "NHibernate.Connection.DriverConnectionProvider"); > > > > configuration.SetProperty > > > > (NHibernate.Cfg.Environment.ConnectionString, String.Format > > > > ("DataSource={0}", filename)); > > > > configuration.SetProperty > > > > (NHibernate.Cfg.Environment.ShowSql, "true"); > > > > configuration.SetProperty > > > > (NHibernate.Cfg.Environment.ReleaseConnections, "on_close"); > > > > > // now the mappings > > > > configuration.AddXmlFile("Mappings\\Player.hbm.xml"); > > > > > factory = configuration.BuildSessionFactory(); > > > > > I'm receiving the following error at the final line: > > > > An unhandled exception of type 'NHibernate.HibernateException' > > > > occurred in NHibernate.dll > > > > > Additional information: Could not create the driver from > > > > NHibernate.Driver.SqlServerCeDriver. > > > > > Can anyone point me out where I'm going wrong? > > > > > Thanks! > > > > > ~Dathan- Hide quoted text - > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nhusers?hl=en -~----------~----~----~----~------~----~------~--~---
