如题:求助:
- C# code
[Serializable] public class A { /// <summary> ///唯一标识 /// </summary> public virtual string ID { get; set; } /// <summary> ///姓名 /// </summary> public virtual string Name { get; set; } } [Serializable] public class B { /// <summary> ///唯一标识 /// </summary> public virtual string ID { get; set; } /// <summary> ///姓名 /// </summary> public virtual DateTime LastTime { get; set; } /// <summary> ///姓名 /// </summary> public virtual string Name { get; set; } }
- XML code
<?xml version="1.0" encoding="utf-8" ?><hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> <class name="Domain.A, Domain" table="A"> <id name="ID" column="ID" type="string"> <generator class="uuid.hex" /> </id> <property name="Name" /> <property name="LastTime" /> </class></hibernate-mapping><?xml version="1.0" encoding="utf-8" ?><hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> <class name="Domain.B, Domain" table="B"> <id name="ID" column="ID" type="string"> <generator class="uuid.hex" /> </id> <property name="LastTime" /> <property name="Name" /> </class></hibernate-mapping>
- C# code
protected void btnSave_Click(object sender, EventArgs e){ A a = new A(); a.Name = GetB(); UtilityDao.SaveOrUpdate(a);//保存A实体}private string GetB(){ string result = string.Empty; B b = service.GetBMethod(); if(b != null) { result = b.Name; } return result;}
实体类和映射文件如上。。。当我点击按钮保存的时候。保存的是A实体的时候用NhibernateProfiler查看session怎么会出现更新B实体的脚本 然后报错"错误:“SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间。” 出现这种问题多半是因为你插入或者更新数据库时datetime字段值为空默认插入0001年01月01日造成datetime类型溢出。
"
------解决方案--------------------------------------------------------
不懂,帮顶
------解决方案--------------------------------------------------------
可以去博客园上问问李永京,他对NHIBERNATE很熟悉。