1

我正在尝试将此 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

将此语句放入单个实体中时遇到了许多问题(所有连接都是一对一的关系)。
我知道一个视图可以解决我的问题,但可惜我没有创建一个视图的权限。

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

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.Project 和 pc.Company = pd.LogComp
  • 我如何从连接表而不是基础表加入?(ProjectCustomer 加入 ProjectData)

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

4

1 回答 1

0

I ended up with a raw sql query and using a datareader to manually fill my object.
This worked cause i only needed to read from a table and not write.

于 2012-08-14T13:27:39.067 回答