gpt4 book ai didi

NHibernate.QueryException : not an association: Id

转载 作者:行者123 更新时间:2023-12-03 00:01:19 29 4
gpt4 key购买 nike

我使用 NHiberNate 编写了联合查询,但收到 NHibernate.QueryException:not an Association: Id

这就是 NHibernate 库的样子

TicketRequest ticketAlias = null;
Show showAlias = null;

IList<TicketRequest> results = UnitOfWork.CurrentSession.QueryOver<TicketRequest>(() => ticketAlias)
.JoinAlias(() => ticketAlias.ShowId, () => showAlias.Id)
.Where(() => showAlias.ShowDate >=DateTime.Now)
.List();

return results;

我只想要一个简单的联合语句,这就是 SQL 中的内容

select * from TicketRequest as a join Show as b
on a.Show_id = b.Id
where ShowDate >=GETDATE()

有人可以帮忙并让我知道为什么我收到“不是关联:Id”错误吗?我在“显示”表中有 id,它是主键。

请指教。非常感谢所有帮助。

最佳答案

您需要在连接中指定多对一关系。在您的情况下,这是 Show 属性。

IList<TicketRequest> results = UnitOfWork.CurrentSession.QueryOver<TicketRequest>(() => ticketAlias)
.JoinAlias(() => ticketAlias.Show, () => showAlias)
.Where(() => showAlias.ShowDate >= DateTime.Now)
.List();

PS:您不应同时映射多对一关系 (Show) 和外键属性 (ShowID)。通常,您在使用 ORM 时仅处理对象关系。仅当您确实需要某些东西时才映射普通 ID,但即使如此也只能将其映射为只读。

关于NHibernate.QueryException : not an association: Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17513428/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com