我用 NHibernate 映射的一个数据库视图似乎有一个奇怪的问题。我正在为我映射的其中一个视图获取重复记录。我有以下视图对象
WorkDetailView
/ \
/ \
/ \
/ \
PickWorkDetailView PutWorkDetailView
每个对象都代表数据库中的不同视图,但两者都PickWorkDetailView
继承PutWorkDetailView
自,WorkDetailView
因为它们共享许多相同的字段。
如果我运行以下代码,我会得到 2 个结果,但如果我在 SQL Management Studio 中运行实际的数据库视图,我会得到 1 个结果。
List<WorkDetailView> workList = session.QueryOver<WorkDetailView>()
.List<WorkDetailView>().ToList();
有趣的是,当我查看workList
上面集合中的所有项目时,我看到一个WorkDetailView
对象和一个PickWorkDetailView
对象。此外,如果我查看 NHibernate 正在运行的查询,它会从所有 3 个视图(WorkDetailView、PickWorkDetailView 和 PutWorkDetailView)中进行选择。这听起来根本不对。如果需要,我可以发布 xml 映射或我的流利映射。