【发布时间】:2020-07-21 00:42:31
【问题描述】:
我在 Column(TypeName) 设置为 VARCHAR 的类中有一个属性,但是当 linq 使用 ToList() 时,linq 生成的 SQL 会转换为 NVARCHAR。有没有办法避免调用 ToList() 方法时发生的 nvarchar 转换?
var codes = xyz.Where(x => x.IsValid).Select(x => x.Code.ToLower()).ToList();
requests = requests.Where(p => codes.Contains(p.Type.ToLower()));
Property(c => c.Type).HasColumnType("varchar").HasMaxLength(3).IsFixedLength();
如上所示,虽然 Type 属性的列类型设置为 VARCHAR,但 linq 在使用 ToList() 时使用 NVARCHAR。
【问题讨论】:
-
非常感谢@ErikEJ 我能够通过使用文档中描述的 PredicateBuilder 来使用 varchar
标签: sql performance linq linq-to-sql data-conversion