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.