是否可以具备以下条件:
在我的应用程序中,对于我的一些较大的对象,我有“小”类,只有几个属性用于数据传输,然后是“大”版本进行编辑。通过这种方式,我可以快速加载项目列表供用户选择,然后只在用户想要编辑该实体时才加载其余属性。
我发现如果我编辑一个“大”实体,然后尝试检索一个“小”实体,那么小实体的信息就不会用新信息更新(当然,所讨论的信息对两者都是通用的类)。我正在大量使用L2缓存,所以我猜测NHibernate无法将更改从大型实体映射到小型实体?如果是这种情况,我唯一的选择是从小实体中删除缓存支持吗?我想我也可以在保存大版本的同时加载和保存小版本,虽然这看起来像是一个黑客(而且真的还有比这个简单的例子更多,所以我宁愿不这样做)
有关域名的简单说明:
/* EntityDto is just a base class with an Id */
public class SimpleAdDto : EntityDto<SimpleAdDto>
{
public virtual string Name { get; set; }
/* more properties */
}
public class FullAdDto : EntityDto<FullAdDto>
{
public virtual string Name { get; set; }
/* lots more properties */
}
两个类都映射到同一个基表; FullAdDto只包含更多属性。如果我编辑FullAdDto的名称,更新的名称不会反映在缓存中的SimpleAdDto中。
我根本没有试验过继承,如果我以某种方式让FullAdD成为SimpleAdDto的子类,这会解决我的问题吗?
提前致谢!