代码大意
parent p = new parent
p.id =1;child c = new child
c.id=2
c.parent =p
p.child.add(c);session.save(p)生成SQL操作
NHibernate: INSERT INTO 创建父
NHibernate: UPDATE 更新子
报错。如果主键是GUID实体自行创建的话就没问题,都是insert 是什么原因?
parent p = new parent
p.id =1;child c = new child
c.id=2
c.parent =p
p.child.add(c);session.save(p)生成SQL操作
NHibernate: INSERT INTO 创建父
NHibernate: UPDATE 更新子
报错。如果主键是GUID实体自行创建的话就没问题,都是insert 是什么原因?
解决方案 »
- ASP.NET中 尴尬的 Ajax 控件
- 有一字符串格式为:string str = "60,100,40,50,20,50",怎样快速转为float[] fWidth = {60,100,40,50,20,50};
- ComponentArt.Web.UI下TreeView控件的使用????
- 请问这段代码应该如何修改?
- 昨天的问题,今天继续
- 一个循环和判断语句的写法
- 字符转换不了,,,是什么原因??,在线等,
- 一个DropDownList无刷新的问题!!!急急急!!!送分了!
- Gentle.Net的用法
- 各位,请教哪儿有asp.net的web自定义控件的开发的好的资料介绍吗?
- FreeTextBox在第一次加载的加载失败,刷新后可以正常运行
- 如何复制?
TestParent p = new TestParent();
p.ID = "p1";
p.Name = "ppp"; TestChild c = new TestChild();
c.ID = "c1";
c.Name = "ccc";
//建立关系
c.TestParent = p;
p.AddTestChild(c); srv.TestDAO.Session.Save(p);执行的SQL 为:
NHibernate: INSERT INTO Northwind.dbo.Test_Parent (name, id) VALUES (@p0, @p1); @p0 = 'ppp', @p1 = 'p1'
NHibernate: UPDATE Northwind.dbo.Test_Child SET name = @p0, p_id = @p1 WHERE id = @p2; @p0 = 'ccc', @p1 = 'p1', @p2 = 'c1'nhibernate 将child对象,没判断出是新建的,而是根据ID去更新了。如果,主键配置为 generator class="guid" 或者 自增型 就不会出现这个问题。
刚查到一个,情况一样的,描述的更清楚一些。是不是一对多关联的,不能从实体外面赋主键值?