A) What error do you get when there is a typo in the XML mapping file's
class-tab name-attribute value and you are using AddFile()?
In other words when the name-attribute value != the name of the class in
the class.cs file.
B) Without that typo, what error do you get when there is a typo in the
string passed into AddFile()?
C) What if the typo is in the value of the assembly-attribute or the
hibernate-mapping-tag and all else is without typos?
D) What if the typo is in the value of the namespace-attribute or the
hibernate-mapping-tag and all else is without typos?
E) How much of log4net helped you to deal with those errors?
I don't think this is what I had going on. Again I've gone through far to
many iterations of this for me to say that at times perhaps it wasn't.
But I did just find I can make a very easy demo of this.
Try it yourself.
VStudio 2015, new project / Web api / SPA.
Add in nHibernate 4.0 & log4net 1.2.15
Add config sections & configs to web.config.
-- here is my openSessoin
public static ISession OpenSession()
{
var cfg = new Configuration();
cfg.Configure(); // nHibernate config is setup in Web.Config
// AddFile() doesn't work. I don't care what they say.
Everyone is setting the propertry of the XML mapping file to "Embedded
Resource" for a reason.
cfg.AddFile(@"C:\Users\slyle\Desktop\Steves NHibernate
Playground\StevesnHibernatePlayground\MyFirstNHibernateSite\MyFirstNHibernateSite\Models\NHibernate\EmployeeList.hbm.xml");
//cfg.AddFile(@"C:\Users\slyle\Desktop\Steves NHibernate
Playground\MyFirstNHibernateSite\MyFirstNHibernateSite\Models\NHibernate\vEmployeeList.hbm.xml");
//cfg.AddFile(@"C:\Users\slyle\Desktop\Steves NHibernate
Playground\MyFirstNHibernateSite\MyFirstNHibernateSite\Models\NHibernate\spHireEveryone.hbm.xml");
ISessionFactory ses = cfg.BuildSessionFactory();
return ses.OpenSession();
}
---
I can make the error come and go as I please at run time by simply editing
EmployeeList.hbm.xml; EmployeeList.hbm.xml is not an embedded resource.
What errors do you get in all cases above?
How much does log4net help you in this case?
On Tuesday, March 1, 2016 at 5:55:02 PM UTC-5, Steve Lyle wrote:
> This line of code:
> cfg.AddFile(@"C:\Users\slyle\Documents\Visual Studio
> 2015\Projects\Cat\Cat\Models\Cat.hbm.xml");
>
> Throws this error:
> An exception of type 'NHibernate.MappingException' occurred in
> NHibernate.dll but was not handled in user code
> Additional information: Could not compile the mapping
> document: C:\Users\slyle\Documents\Visual Studio
> 2015\Projects\Cat\Cat\Models\Cat.hbm.xml
>
> Why?
> It is as if AddFile() can't find *C:\Users\slyle\Documents\Visual Studio
> 2015\Projects\Cat\Cat\Models\Cat.hbm.xml*
> In fact, if I intentionally inject a typo in the path to the file I get
> the same error.
> However this line of code, immediately preceding AddFile(), doesn't have
> any problems.
> cfg.Configure(@"C:\Users\slyle\Documents\Visual Studio
> 2015\Projects\Cat\Cat\Models\hibernate.cfg.xml");
> I also find if I define the configuration in Web.config then there isn't
> any trouble.
> If I don't include the path-file literal in Configure() then the
> hibernate.cfg.xml file will successfully be searched for and found in the
> bin\ folder ~ kind of as a undocumented default.
> But <mapping>.hbm.xml file/s are not afforded the same bin\ folder
> courtesy.
>
> Understand this is code from the "QuickStart" taken right off of the
> nHibernate website
> and I have literally tried to many ways to get this to work that I'm
> resorting to you, my 4th level of support.
>
> I understand by documentation and by construction nHibernate
> confguration() has about 12 different ways to load mappings.
> And I'd like to believe if one works then all others will work alike.
> Personally I believe the "Embedded Resource" option is contrary to
> flexibility and therefore contrary good application management.
> Sadly, the "Embedded Resource" option seems to be the only way to make
> nHibernate work.
> And worse than all this is poor error reporting.
> Shortcomings and underdevelopment all really buts enterprise adoption of
> nHibernate into question.
> Is this thing really meant to be something - or is it only a toy?
>
> -----
> This is the mapping file:
> <?xml version="1.0" encoding="utf-8" ?>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> namespace="QuickStart" assembly="QuickStart">
> <class name="Cat" table="Cat">
> <!-- id name="Id"><column name="ID" sql-type="int" not-null="true"
> /><generator class="identity" /></id -->
> <id name="Id"><column name="CatId" sql-type="char(32)"
> not-null="true"/><generator class="uuid.hex" /></id>
> <property name="Name"><column name="Name" length="16" not-null="true"
> /></property>
> <property name="Sex" />
> <property name="Weight" />
> </class>
> </hibernate-mapping>
> -----
>
> -----
> This is the c# model:
> using System;
> using System.Collections.Generic;
> using System.Linq;
> using System.Web;
>
> namespace QuickStart
> {
> public class Cat
> {
> private string id;
> private string name;
> private char sex;
> private float weight;
>
> public Cat(){}
>
> public virtual string Id { get { return id; } set { id = value; } }
> public virtual string Name { get { return name; } set { name =
> value; } }
> public virtual char Sex { get { return sex; } set { sex = value; }
> }
> public virtual float Weight { get { return weight; } set { weight
> = value; } }
> }
> }
> -----
>
>
> -----
> And this is the table DDL:
> CREATE TABLE [dbo].[Cat](
> [CatId] [char](32) NOT NULL,
> [Name] [nvarchar](16) NOT NULL,
> [Sex] [nchar](1) NULL,
> [Weight] [real] NULL,
> CONSTRAINT [PK_Cat] PRIMARY KEY CLUSTERED
> (
> [CatId] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =
> OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> ) ON [PRIMARY]
> -----
>
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/d/optout.