我正在尝试保留SortedList< DateTime,double?>与NHibernate 2.0。当项目的值(非键)为空时,该项目不会持久保存到数据库。
课程片段:
public class TimeSeries{ ... public TimeSeries(){ Data = new SortedList(); } public virtual IDictionary Data { get; private set; } ... }
映射代码段:
... <map name="Data" cascade="all" lazy="true" sort="natural" collection-type="sorted-list"> <key column="ID"/> <index type="Date" column="Period"/> <element type="double" column="Value" not-null="false"/> </map> ...
使用情况摘要:
var series = new TimeSeries(); series.Data.Add(new DateTime(2000, 1, 1), 1); series.Data.Add(new DateTime(2000, 1, 2), null); series.Data.Add(new DateTime(2000, 1, 3), 3); repository.Add(series);
第一项和第三项是持久的,但不是第二项。如果我将double值从空值更改为非空值,则可以保存正常。
知道如何保存空值吗?我正在使用MySql,数据库模式允许空值。
谢谢, 马库斯