Live
博客园
::
首页
::
联系
::
订阅
::
管理
4 Posts :: 1 Stories :: 55 Comments :: 0 Trackbacks
公告
昵称:
一唯
园龄:
5年10个月
粉丝:
0
关注:
0
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
随笔分类
IM(2)
ORM相关(1)
控件&组建(1)
随笔档案
2006年8月 (1)
2006年7月 (1)
2006年3月 (2)
最新评论
NHibernate 配置方式
今天下来NHibernate1.0.2.0,参照Examples自己写写。
dll引用,配置文件,映射类,映射文件都OK。
主要代码如下:
1
Configuration cfg
=
new
Configuration();
2
cfg.AddAssembly(
"
NhibernateTest
"
);
3
4
ISessionFactory factory
=
cfg.BuildSessionFactory();
5
ISession session
=
factory.OpenSession();
6
ITransaction transaction
=
session.BeginTransaction();
7
8
User newUser
=
new
User();
9
newUser.Id
=
1
;
10
newUser.UserName
=
"
nicole
"
;
11
newUser.Password
=
"
abc123
"
;
12
session.Save(newUser);
13
transaction.Commit();
14
session.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
一唯
阅读(1310)
评论(3)
编辑
收藏
Feedback
509777
#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是关键字造成的
回复
引用
#3楼
2006-09-20 16:25
会下蛋的铁公鸡
你好,我的测试例子也调不过,请问怎么改:
**********错误提示***************
这是一个意外的标记。标记应为“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; }
}
回复
引用
查看
注册用户登录后才能发表评论,请
登录
或
注册
,
返回博客园首页
。
首页
博问
闪存
新闻
园子
招聘
知识库
最新IT新闻
:
·
伊朗封杀Gmail和Facebook等互联网服务
·
分析称专利之争让谷歌苹果两败俱伤
·
Android平台发现新型手机病毒Rootsmart
·
HTC首款Android4.0手机大曝光
·
这是不是你期待的 iPad 3?
»
更多新闻...
最新知识库文章
:
·
高级编程语言的发展历程
·
如何学习一门新的编程语言?
·
学习不同编程语言的重要性
·
为什么我喜欢富于表达性的编程语言
·
计算机专业的女生为什么要学编程
»
更多知识库文章...
China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务
Copyright @ 一唯
Powered by:
.Text
and
ASP.NET
Theme by:
.NET Monster