在 NHibernate 中,当我们执行如下查询时,为它生成的 SQL 将包含集合中每个元素的参数。如果查询是针对 MSSQL Server 执行的,并且集合中有 2k 或更多元素,您将收到错误消息,因为 sql 引擎允许的最大参数为 2k。
var bankaccounts = from b in this.unitOfWork.BankAccounts
where command.Ids.Contains(b.Id) // command.ids is an array with id's
select b;
很抱歉自己懒得用 EntityFramework 进行测试,但我看到其他开发人员编写了这样的代码:EF cannot delete child object because of associationset
问题是这种查询将从 EF 生成什么 SQL?