所以我有一个对象,其中包含一个专门设置为延迟加载的属性,下面是NHibernate映射文件:
public class FileObject_ORM : ClassMap<FileObject> {
public FileObject_ORM() {
Id(x => x.ID);
Map(x => x.FileName);
Map(x => x.FileData)
.CustomType("BinaryBlob")
.LazyLoad();
Table("tbFiles");
}
}
现在我的问题是,当我使用JSON.NET来序列化这个对象时:
JsonConvert.SerializeObject(myObject);
我收到以下错误:
Error getting value from 'IsCurrentTimestampSelectStringCallable' on 'NHibernate.Dialect.SQLiteDialect
我认为这是因为JSON.NET试图序列化尚未加载的惰性属性。但是我尝试用[JsonIgnore],[NonSerialized]以及[IgnoreDataMember]标记属性(在我的FileObject类中,而不是流畅的映射FileObject_ORM),但每次都会得到相同的错误。
现在我听说这应该适用于集合(通常是延迟加载的),但是对于专门定义为延迟加载的属性它是否不同?