SQL翻译成流利的Nhibernate=>与静态值连接

本文关键字:静态 连接 Nhibernate 翻译 SQL | 更新日期: 2023-09-27 18:32:16

我正在尝试将这个sql语句转换为流畅的nhibernate映射:

select *
from Project p
inner join ProjectData pd on p.Project = pd.Project
inner join ProjectCompany pc on p.Project = pc.Project and pc.InitComp = 'Yes' and pc.Company = pd.LogComp
inner join ProjectCustomer cust on cust.id = pd.custid

我面临着将此语句放入单个实体的许多问题(所有连接都是 1 对 1 关系)。
我知道单个视图可以解决我的问题,但唉,我没有创建视图的权限。

目前我的代码看起来像这样

Table("Project");
Id(p=> p.Number);
Join("ProjectData", j =>
{
    j.Fetch.Join();
    j.KeyColumn("Project");
    j.Map(pd => pd.Customer);
});
Map(p => p.Complexity);

我面临的问题是:

  • 如何创建硬编码过滤器 (pc.InitComp = 'Yes')
  • 如何使用 2 个语句连接(p.project = pc.项目和电脑。公司 = pd。日志组合
  • 如何从联接表而不是基表联接?(项目客户加入项目数据)
对于

sql 中如此微不足道的事情有很多问题,但我似乎无法在互联网上找到一个简单的答案,然后创建一个视图。

SQL翻译成流利的Nhibernate=>与静态值连接

我最终得到了一个原始的sql查询,并使用数据阅读器手动填充我的对象。
这有效,因为我只需要从表中读取而不是写入。