【发布时间】:2020-01-14 02:18:05
【问题描述】:
我有一个遗留的 sql,它基本上用这样的子查询插入记录
INSERT INTO invoice (invno, otherfields )
VALUES ( (SELECT Max(invno)+1 AS maxinvno FROM invoices) , othervalues )
我正在尝试在 C# 的 NHibernate 中实现相同的功能。
我的问题是:
是否可以避免使用 SQL/HQL 查询并改用 LINQ NHibernate 样式。如果可能的话 - 怎么做?
例如:
Invoice invoice = new Invoice();
invoice.invno = ...
session.save
更新:删除 linq 参考 更新:添加了想要结果的 sn-p
【问题讨论】:
-
你不能使用自动编号/数据库控制的递增的东西,比如序列?
-
答案是肯定的。尝试通过此链接阅读第 18.6 节nhibernate.info/doc/nhibernate-reference/querylinq.html
-
@CaiusJard 设计是多年前制作的,不可更改
-
@Christos,来自这篇文章,看到了 InsertBulder 等。无法弄清楚如何实现目标。
标签: c# sql nhibernate fluent-nhibernate