3

这是我的查询

var maillst = (from o in ObjContext.CashDepositCapturings
               join m in ObjContext.Merchants on o.MerchantID equals m.MerchantID
               join u in ObjContext.Users on o.CreatedBy equals u.UserID
               where u.EmailAddress != String.Empty && u.EmailAddress != null && 
               o.CashDepositCapturingID.Equals(dataModel.CashDepositId)
               select new CashDepositApproveMail
               {
                  SendToEmailId = u.EmailAddress,
                  SendToFirstName = u.FirstName,
                  sendToLastName = u.LastName,
                  cashDepoCreatedBy = o.CreatedBy,
                  CashDepoCaptrId = o.CashDepositCapturingID
               }).ToList();

这给了我错误:

无法解决等于操作中“SQL_Latin1_General_CP1_CI_AS”和“Latin1_General_CI_AS”之间的排序规则冲突。

但是当我删除 .ToList() 它工作正常

我有三个这样的查询我想将所有三个的结果添加到一个列表中并将其发送到某个函数。

4

1 回答 1

3

当它到达数据库时,您最终会尝试比较使用不同排序规则存储的两个 varchar。一种是使用 Latin1 General Case Insensitive Accent Sensitive 的 SQL 排序规则,另一种是该排序规则的 Windows 风格。

在 SQLcollate中,您可以通过使用相关列来解决此问题,以确保它们在相同的排序规则中进行比较。在您的实体框架中,您将不得不找到一些其他方法来使排序规则相同。

于 2013-02-20T21:32:19.140 回答