当涉及到我的模型设计(并且我正在使用 Dapper.net)时,我正在尝试为即将开始的新项目确定最佳方法。
我喜欢让我的模型带有对象而不是外键属性的想法,即
public Post LastPost { get; set; }
对比
public int LastPostId { get; set; }
但是,如果我实现这种很好的干净方法,我必须对所有对象进行多重映射(这会导致对象内对象的潜在循环引用,或者必须在某个点停止多重映射,因此最终得到NULL 对象在对象树下的某个点)。此外,如果我在一定程度上进行多映射,那么我可能会导致不必要的工作,在并不总是需要它们时执行连接等。
或者,如果我决定使用多重映射“根据需要”在对象中填充我的对象(在我的一些 repos 方法中执行多重映射,因为它需要,而在其他 repos 方法中,不要费心填充对象),然后感觉有点脏,因为我不能总是确定一个对象(在一个对象内)是否为空。
我过去使用过 NHibernate(或者至少是它的一些更基本的功能)并且没有遇到两难境地,因为我的模型中总是有对象,如果/当需要它们时,我可以依靠延迟加载来获取它们- 但是,没有使用 Dapper.net 进行延迟加载,我真的不确定最好的方法是什么?