I have this class:
public class AttachmentLocation { #region properties public virtual Guid UserId { get; set; } public virtual Guid LocationId { get; set; } public virtual long IndexInLocation { get; set; } #endregion #region contained foreign objects public virtual Attachment Attachment { get; set; } #endregion #region Methods need to override for CompositeId public override bool Equals(object obj) { if (obj == null) return false; var t = obj as AttachmentLocation; if (t == null) return false; if (UserId == t.UserId && LocationId == t.LocationId && Attachment.Id == t.Attachment.Id) return true; return false; } public override int GetHashCode() { return (UserId + "|" + LocationId + "|" + Attachment.Id).GetHashCode(); } #endregion }
I have this Fluent Mapping:
public class AttachmentLocaionMap : ClassMap<AttachmentLocation> { public AttachmentLocaionMap() { Table("Metadata_AttachmentLocation"); CompositeId() .KeyReference(x => x.UserId, "UserId") .KeyReference(x => x.Attachment.Id, "AttachmentId") .KeyReference(x => x.LocationId, "LocationId"); Map(x => x.IndexInLocation).Not.Nullable(); Map(x => x.LocationId).Not.Nullable(); HasOne(x => x.Attachment); } }
which I register:
SessionFactory = Fluently.Configure(configuration).Mappings(m => { m.FluentMappings.AddFromAssemblyOf<AttachmentLocaionMap>(); m.FluentMappings.AddFromAssemblyOf<FriendDetailsMap>(); }).BuildSessionFactory();
I get this runtime error: > An association from the table Metadata_AttachmentLocation refers to an > unmapped class: System.Guid > > Description: An unhandled exception occurred during the execution of > the current web request. Please review the stack trace for more > information about the error and where it originated in the code. > > Exception Details: NHibernate.MappingException: An association from > the table Metadata_AttachmentLocation refers to an unmapped class: > System.Guid > > Source Error: > > > Line 19: Line 20: Line 21: SessionFactory = > Fluently.Configure(configuration).Mappings(m => Line 22: { > Line 23: > m.FluentMappings.AddFromAssemblyOf<AttachmentLocaionMap>(); > > Source File: C:\Users\elad\Documents\Visual Studio > 2010\Projects\SVN\UGI\Ugi\Infrastructure\Dal\Adapters\NHibernateAdapter\NHibernateHelper.cs > Line: 21 > > Stack Trace: > > > [MappingException: An association from the table > Metadata_AttachmentLocation refers to an unmapped class: System.Guid] > NHibernate.Cfg.Configuration.LogAndThrow(Exception exception) in > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs:342 > NHibernate.Cfg.Configuration.SecondPassCompileForeignKeys(Table table, > ISet done) in > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs:1169 > NHibernate.Cfg.Configuration.SecondPassCompile() in > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs:1120 > NHibernate.Cfg.Configuration.BuildSessionFactory() in > d:\CSharp\NH\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs:1249 > FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() in > d:\Builds\FluentNH-v1.x-nh3\src\FluentNHibernate\Cfg\FluentConfiguration.cs:227 > > [FluentConfigurationException: An invalid or incomplete configuration > was used while creating a SessionFactory. Check PotentialReasons > collection, and InnerException for more detail. > > * Database was not configured through Database method. ] > FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() in > d:\Builds\FluentNH-v1.x-nh3\src\FluentNHibernate\Cfg\FluentConfiguration.cs:232 > Ugi.Infrastructure.Dal.Adapters.NHibernateAdapter.NHibernateHelper.OpenSession() > in C:\Users\elad\Documents\Visual Studio > 2010\Projects\SVN\UGI\Ugi\Infrastructure\Dal\Adapters\NHibernateAdapter\NHibernateHelper.cs:21 > Ugi.Infrastructure.Dal.Adapters.NHibernateAdapter.NHibernateHelper.GetSession() > in C:\Users\elad\Documents\Visual Studio > 2010\Projects\SVN\UGI\Ugi\Infrastructure\Dal\Adapters\NHibernateAdapter\NHibernateHelper.cs:36 > Ugi.Infrastructure.Dal.Adapters.NHibernateAdapter.NHibernateDal`1..ctor() > in C:\Users\elad\Documents\Visual Studio > 2010\Projects\SVN\UGI\Ugi\Infrastructure\Dal\Adapters\NHibernateAdapter\NHibernateDal.cs:16 > Ugi.Infrastructure.Dal.Adapters.NHibernateAdapter.NHibernateDalFactory.GetDal() > in C:\Users\elad\Documents\Visual Studio > 2010\Projects\SVN\UGI\Ugi\Infrastructure\Dal\Adapters\NHibernateAdapter\NHibernateDalFactory.cs:17 > Ugi.Server.Sources.Logic.SourcesService..ctor() in > C:\Users\elad\Documents\Visual Studio > 2010\Projects\SVN\UGI\Ugi\Server\Sources\Logic\SourcesService.cs:36 > BuildUp_Ugi.Server.Sources.Logic.SourcesService(IBuilderContext ) +153 > Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(IBuilderContext > context) in > c:\EntLib\UnityTemp\Compile\Unity\Unity\Src\ObjectBuilder\Strategies\BuildPlan\DynamicMethod\DynamicMethodBuildPlan.cs:37 > Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(IBuilderContext > context) in > c:\EntLib\UnityTemp\Compile\Unity\Unity\Src\ObjectBuilder\Strategies\BuildPlan\BuildPlanStrategy.cs:43 > Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext > context) in > c:\EntLib\UnityTemp\Compile\Unity\Unity\Src\ObjectBuilder\Strategies\StrategyChain.cs:110 > Microsoft.Practices.Unity.UnityContainer.DoBuildUp(Type t, Object > existing, String name, IEnumerable`1 resolverOverrides) in > c:\EntLib\UnityTemp\Compile\Unity\Unity\Src\UnityContainer.cs:512 > > [ResolutionFailedException: Resolution of the dependency failed, type > = "Ugi.Common.Model.Sources.ISourcesService", name = "(none)". Exception occurred while: Calling constructor > Ugi.Server.Sources.Logic.SourcesService(). Exception is: > FluentConfigurationException - An invalid or incomplete configuration > was used while creating a SessionFactory. Check PotentialReasons > collection, and InnerException for more detail. > > * Database was not configured through Database method.
How can I fix that?
TIA
|