Doh! I completely missed that text. Sure enough, adding <runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"><qualifyAssembly partialName="System.Data.SqlServerCe" fullName="System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/></assemblyBinding></runtime> to app.config has it working like a charm.
Thanks! ~Dathan On Mon, Jun 1, 2009 at 4:56 PM, John Rayner <[email protected]>wrote: > > 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 -~----------~----~----~----~------~----~------~--~---
