【发布时间】:2011-11-30 17:09:18
【问题描述】:
我有大约 40 个类,它们都实现了 IEntity 接口。
在大约 40 个类中,许多使用“多对一”映射到 IEntity 属性。这方面的一个例子可能是:
"IEntity.cs"
public interface IEntity
{
Guid ID
...Other properties (~7 of them)
}
"Item.cs"
public class Item : IEntity
{
Public Guid ID {get;set;}
...Other IEntity Properties
Public IEntity Owner {get;set;}
}
我相信使用 NHibernate 来映射 Item 上的 Owner 属性,我需要使用 NHibernate 的继承映射之一,使用 IEntity 作为基础。
问题在于二级缓存的配置与类定义相关,而不是与子类相关。我必须同时对模型中的所有约 40 个类启用缓存,而且我不能只缓存我想要的类,例如类别。
有谁知道我如何映射一个具有抽象实体类型属性的实体,而不会失去做出二级缓存选择的能力?
【问题讨论】:
-
我不能提供赏金,但如果你发布了一个好的答案,我会仔细查看你之前对其他问题的一些答案,看看它们是否也值得点赞。
-
赏金可能仍然是正确的答案。一个用户返回并支持一堆其他帖子可能会触发垃圾邮件保护,并且所有代表将在一天后丢失。
-
这听起来像你想要一个
映射而不是 请参阅ayende.com/blog/3966/nhibernate-mapping-any -
@insta 不知道垃圾邮件过滤器。谢谢。
-
Chris 可以告诉我垃圾邮件过滤器是否会在明天取消他的一些分数 =) 任何映射都是解决方案。
标签: c# .net nhibernate many-to-one