当前位置: 代码迷 >> ASP.NET >> 保存A实体会莫名其妙保存到B实体。这是如何回事啊!Nhibernate
  详细解决方案

保存A实体会莫名其妙保存到B实体。这是如何回事啊!Nhibernate

热度:4243   发布时间:2013-02-26 00:00:00.0
保存A实体会莫名其妙保存到B实体。。这是怎么回事啊!!Nhibernate
如题:求助:
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很熟悉。
  相关解决方案