I'm at a loss here. I'm trying to upgrade my project to the latest
fluent + NH 2.1.
When I do my configuration like this:
var factory = Fluently.Configure(cfg)
.Database(databaseConfigurer)
.Mappings(m
=>m.FluentMappings.AddFromAssemblyOf<PatientMap>()
.ConventionDiscovery
.AddFromAssemblyOf<PatientMap>())
.ExposeConfiguration(c =>
{
ve =
ConfigureValidator(c);
c.SetProperty("adonet.batch_size", "5");
c.SetProperty("generate_statistics", "true");
})
.BuildSessionFactory();
fluent-nhibernate defaults to the Castle ProxyFactoryFactory but I get
a:
System.IO.FileNotFoundException: Could not load file or assembly
'NHibernate.ByteCode.Castle' or one of its dependencies. The system
cannot find the file specified.
at System.Reflection.Assembly._nLoad(AssemblyName fileName, String
codeBase, Evidence assemblySecurity, Assembly locationHint, ref
StackCrawlMark stackMark, Boolean throwOnFileNotFound, Boolean
forIntrospection)
at System.Reflection.Assembly.nLoad(AssemblyName fileName, String
codeBase, Evidence assemblySecurity, Assembly locationHint, ref
StackCrawlMark stackMark, Boolean throwOnFileNotFound, Boolean
forIntrospection)
at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef,
Evidence assemblySecurity, ref StackCrawlMark stackMark, Boolean
forIntrospection)
at System.Reflection.Assembly.InternalLoad(String assemblyString,
Evidence assemblySecurity, ref StackCrawlMark stackMark, Boolean
forIntrospection)
at System.Reflection.Assembly.Load(String assemblyString)
at
NHibernate
.Util.ReflectHelper.TypeFromAssembly(AssemblyQualifiedTypeName name,
Boolean throwOnError)
at NHibernate.Util.ReflectHelper.ClassForName(String name)
at
NHibernate
.Bytecode.AbstractBytecodeProvider.SetProxyFactoryFactory(String
typeName)
I've made sure to reference and mark to copy the
NHibernate.ByteCode.Castle assembly and it's dependancies.
As a matter of fact, when I do my configuration like this:
var factory = Fluently.Configure(cfg)
.Database(databaseConfigurer)
.Mappings(m
=>m.FluentMappings.AddFromAssemblyOf<PatientMap>()
.ConventionDiscovery
.AddFromAssemblyOf<PatientMap>())
.ExposeConfiguration(c =>
{
ve =
ConfigureValidator(c);
c.SetProperty("adonet.batch_size", "5");
c.SetProperty("generate_statistics", "true");
c.SetProperty("proxyfactory.factory_class",
typeof
(NHibernate.ByteCode.Castle.ProxyFactoryFactory).AssemblyQualifiedName);
})
.BuildSessionFactory();
[Note the addition of:
c.SetProperty("proxyfactory.factory_class",
typeof
(NHibernate.ByteCode.Castle.ProxyFactoryFactory).AssemblyQualifiedName);
]
It compiles, but I get a new and exciting exception while configuring:
System.Reflection.AmbiguousMatchException: Ambiguous match found.
at System.RuntimeType.GetPropertyImpl(String name, BindingFlags
bindingAttr, Binder binder, Type returnType, Type[] types,
ParameterModifier[] modifiers)
at System.Type.GetProperty(String name, BindingFlags bindingAttr)
at NHibernate.Properties.BasicPropertyAccessor.GetSetterOrNull(Type
type, String propertyName)
at NHibernate.Properties.BasicPropertyAccessor.GetSetter(Type type,
String propertyName)
at NHibernate.Mapping.Property.GetSetter(Type clazz)
at
NHibernate.Tuple.Component.PocoComponentTuplizer.BuildSetter(Component
component, Property prop)
at
NHibernate.Tuple.Component.AbstractComponentTuplizer..ctor(Component
component)
at NHibernate.Tuple.Component.PocoComponentTuplizer..ctor(Component
component)
at
NHibernate
.Tuple.Component.ComponentEntityModeToTuplizerMapping..ctor(Component
component)
at NHibernate.Tuple.Component.ComponentMetamodel..ctor(Component
component)
at NHibernate.Mapping.Component.BuildType()
at NHibernate.Mapping.Component.get_Type()
at NHibernate.Mapping.SimpleValue.IsValid(IMapping mapping)
at NHibernate.Mapping.PersistentClass.Validate(IMapping mapping)
at NHibernate.Mapping.RootClass.Validate(IMapping mapping)
at NHibernate.Cfg.Configuration.Validate()
at NHibernate.Cfg.Configuration.BuildSessionFactory()
at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() in
FluentConfiguration.cs: line 93
Any ideas?
Also, why is the fluent access for setting the ProxyFactoryFactory
hanging off the database configuration? I don't understand that. It
doesn't really work for me there since I configure my database for
different cases. Sqlite for unit tests vs. MS sql server 2005 for
production.
(FYI, the "ve = ConfigureValidator(c);" bit is the NHibernate
Validator. I don't think it matters, but...)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Fluent NHibernate" 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/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---