8

有谁知道我们如何解决 select linq 查询中的排序规则问题?当我想在 linq 中选择数据时出现此错误。

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

var lstData = from s in dataTrackDB.datas
              join b in dataTrackDB.brandDatas on i.brandcode equals b.brandcode
              join b in dataTrackDB.brandDatas on i.brandcode equals b.brandcode
              join b in dataTrackDB.brandDatas on i.brandcode equals b.brandcode
              join m in dataTrackDB.mktDatas on s.mktcode equals m.mktcode
              select new dataView { 
                  Account=m.account,
                  brandcode=b.brandcode,
                  commodity=s.commodity,
                  date=s.date,
                  daysvalid=s.daysvalid,
                  mfrcode=b.mfrcode,
                  mktcode=s.mktcode,
                  price=s.price,
                  prodid=s.prodid,
                  statecode=s.statecode,
                  subcommodity=s.subcommodity,
                  supprecode=s.supprecode,
                  units =s.units 
              };

lstData = lstData.AsQueryable().Where(x => x.mfrcode == mfr );

return lstData.Take(100).ToList();
4

2 回答 2

4

问题不在 Linq 中,而是在您的数据库中

例如,您可以创建一个以这种方式连接的视图,然后从视图中选择 linq 中的数据

SELECT * FROM T1
INNER JOIN T2 ON 
T1.Name COLLATE Latin1_General_CI_AS = T2.Name COLLATE Latin1_General_CI_AS

或者先在 linq2sql 中为每个表分别选择数据,然后与 linq2object 连接

于 2010-02-09T10:45:08.723 回答
0

COLLATE DATABASE_DEFAULT在查询末尾添加

于 2017-09-28T09:26:16.530 回答