作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我在引用(多对一)上指定 PropertyRef - 它会急切地获取所有相关记录:
References(x => x.Panel).PropertyRef(x => x.Code).Not.Insert().Not.Update();
我可以禁用 N + 1 选择问题吗?
在这里我可以看到这个问题是已知的,但是有什么解决方法吗? Lazy loading not working for many-to-one relationship when mapping to a non-key field using property-ref
最佳答案
有一个解决方法。但只是因为您的多对一是只读的(我们以后不必关心插入/更新问题)。如何?通过引入虚拟实体,例如面板 View
// Readonly mapping, virtual class
// which ID role is playing column panel_CODE
public PanelViewMapping()
{
Table("panel-table");
Id(x => x.Code)
.Column("panel_CODE")
.GeneratedBy.Assigned();
...
现在,我们必须调整 POCO 实体:
// instead of this
// public virtual Panel Panel { get; set; }
// we will have this
public virtual PanelView Panel { get; set; }
然后我们可以将它用作主键映射:
References(x => x.Panel)
//.PropertyRef(x => x.Code)
.Not.Insert()
.Not.Update();
并且所有功能(延迟加载)都将正常工作。
关于c# - Fluent nHibernate PropertyRef 急切地获取引用的记录。我可以禁用它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28504734/
我是一名优秀的程序员,十分优秀!