【发布时间】:2023-04-02 07:50:01
【问题描述】:
我有一个使用 NH 3.1 的项目,到目前为止,我一直在使用 QueryOver 语法。
这个项目的一个方面存在于一个组织范围的数据库中,我对其具有只读访问权限,并且使用的是完全不同的 DBMS(Oracle 与 MSSQL)。所以我使用标准的多对多表将我的对象(Foos)的引用存储到它们的对象(Bars)
FooBars
FooID int not null PK
BarID int not null PK
而我的域对象没有Iset<Bar>,而是有一个手动映射到FooBars 表的ISet<int> BarIDs。这可以防止 NH 尝试做不可能的事情并一直连接到 Bars 表(如果需要,我可以使用 BarRepository.Get() 稍后检索 Bars 的详细信息,在这种情况下,我会't,因为我只需要 ID 来过滤返回的对象列表)。
鉴于IList<int> SelectedBars,我如何编写QueryOver<Foo>,其中BarIDs 包含SelectedBars 中的任何元素?
SQL 之类的
...FROM foos INNER JOIN foobars on foo.fooID = foobars.fooID WHERE barID IN ( ... )
【问题讨论】:
标签: nhibernate queryover