0

我在 datagridview 中显示我的对象列表(如数据源)时遇到问题。我有几个属性的类。其中两个是另一个对象。

我试图在我的类中覆盖 ToString(),但是我得到了一个例外,女巫告诉我,我的对象的单元格具有 int32 类型(我认为,是我的对象的 ID)

如果没有 tostring 覆盖,我会在我的 datagridview 中看到“Castle.Proxies.ClassNameProxy”。

也许我必须更改某些列的类型,但是在数据绑定之前,没有列,在数据绑定之后为时已晚(我认为)。

我的地图有一点:

        Table("Dostawa");
        SchemaAction.All();
        Id(x => x.Id).GeneratedBy.Identity();
        Map(x => x.Nazwa).Not.Nullable();
        Map(x => x.Numer).Not.Nullable();
        References(x => x.Material).Column("IdMaterialu");      // first referenced object
        References(x => x.Producent).Column("IdProducenta");   // second referenced object

编辑:通过调试我看到,我的列表是数据源包含这两个对象,如属性,但在这个对象中,只有 Id 是已知的,否则属性是“抛出类型为 'NHibernate.LazyInitializationException' 的异常”

4

1 回答 1

3

在你的映射中试试这个。默认情况下,这将急切加载对象而不是延迟加载。

 References(x => x.Material).Column("IdMaterialu").Not.LazyLoad();
 References(x => x.Producent).Column("IdProducenta").Not.LazyLoad();
于 2013-06-16T07:32:25.790 回答