Live

  博客园 :: 首页 :: 联系 :: 订阅 订阅 :: 管理
  4 Posts :: 1 Stories :: 55 Comments :: 0 Trackbacks
今天下来NHibernate1.0.2.0,参照Examples自己写写。
dll引用,配置文件,映射类,映射文件都OK。
主要代码如下:
 1Configuration cfg = new Configuration();
 2cfg.AddAssembly("NhibernateTest");
 3
 4ISessionFactory factory = cfg.BuildSessionFactory();
 5ISession session = factory.OpenSession();
 6ITransaction transaction = session.BeginTransaction();
 7
 8User newUser = new User();
 9newUser.Id = 1;
10newUser.UserName = "nicole";
11newUser.Password = "abc123";
12session.Save(newUser);
13transaction.Commit();
14session.Close();
执行到第12行代出错: Unknown entity class: NhibernateTest.User
好像是没有映射好。
将第二行的代码换成:
cfg.AddXmlFile("NhibernateTest.User.hbm.xml");
就可以了。换成:
cfg.AddClass(typeof(User));
也不行,错误为:Resource: NhibernateTest.User.hbm.xml not found。“NhibernateTest.User.hbm.xml ”文件放在bin下或者项目根目录都没用。
文档说AddAssembly会把所有.hbm.xml文件都加载,为什么不行?
AddClass方法的话是在什么地方寻找相对于的.hbm.xml文件呢?
posted on 2006-03-21 16:53 一唯 阅读(1170) 评论(3)  编辑 收藏 网摘 所属分类: ORM相关

Feedback

#1楼[楼主] 2006-03-21 17:12 一唯      
sorry,自己看文档不认真:If VisualStudio.NET or NAnt is used to build the Assembly then make sure that the hbm.xml files are added as Embedded Resources
作为内嵌资源添加映射文件之后,AddAssembly方法能够读取所有的映射文件啦。
不过AddClass还是提示NhibernateTest.User.hbm.xml not found。????

  回复  引用  查看    

#2楼 2006-06-14 17:20 ugvanx[未注册用户]
User是关键字造成的
  回复  引用    

你好,我的测试例子也调不过,请问怎么改:
**********错误提示***************

这是一个意外的标记。标记应为“NAME”。 行 1,位置 37。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Xml.XmlException: 这是一个意外的标记。标记应为“NAME”。 行 1,位置 37。

源错误:


行 55: // {
行 56: Configuration cfg = new Configuration();
行 57: cfg.AddAssembly("NHClass");
行 58: //cfg.AddXmlFile("NHClass.Poster.hbm.xml");
行 59: ISessionFactory factory = cfg.BuildSessionFactory();



*****************完整代码****************

Configuration cfg = new Configuration();
cfg.AddAssembly("NHClass");
ISessionFactory factory = cfg.BuildSessionFactory();
ISession session = factory.OpenSession();
ITransaction trans = session.BeginTransaction();

Poster post = new Poster();
post.PostID = Guid.NewGuid();
post.Title = "hello Nibernate";
post.Content = "foo test";
post.Creator = "foo";
post.LastUpdator = "bar";
post.CreateDate = System.DateTime.Now.Date;
post.LastUpdateDate = System.DateTime.Now.Date;

session.Save(post);
trans.Commit();
session.Close();


******************Post实体类**************

private Guid postId;
private string title;
private string content;
private string creator;
private DateTime createDate = System.DateTime.Now;
private string lastUpdator;
private DateTime lastUpdateDate = System.DateTime.Now;

public Guid PostID
{
get { return this.postId; }
set { this.postId = value; }
}

public string Title
{
get { return this.title; }
set { this.title = value; }
}

public string Content
{
get { return this.content; }
set { this.content = value; }
}

public string Creator
{
get { return this.creator; }
set { this.creator = value; }
}

public DateTime CreateDate
{
get { return this.createDate; }
set { this.createDate = value; }
}

public string LastUpdator
{
get { return this.lastUpdator; }
set { this.lastUpdator = value; }
}

public DateTime LastUpdateDate
{
get { return this.lastUpdateDate; }
set { this.lastUpdateDate = value; }
}

  回复  引用  查看    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 355087




相关文章:

相关链接: