gpt4 book ai didi

c# - 为 tinyint 列生成的查询将 CAST 引入到 int

转载 作者:可可西里 更新时间:2023-11-01 07:44:22 25 4
gpt4 key购买 nike

我正在查询一个 tinyint 列,并且 Entity Framework 生成一个 SELECT 查询,该查询为该列引入一个 CAST 到 INT,即使我在 WHERE 子句中使用的值是 byte 类型也是如此。

查看模型,为我的 tinyint 列生成的类型是 byte。

查看代码:

byte byteValue = 6;
var entityList = from r in rep.DataContext.FooTable
where r.TinyintColumn == byteValue
select r;

查看生成的查询:

SELECT [Extent1].[TinyintColumn] AS [TinyintColumn] WHERE @p__linq__0 = CAST( [Extent1].[TinyintColumn] AS int) 

我对性能有严格的限制,所以我不想在任何选择中使用那些 CAST。

所以我的问题是,有什么方法可以避免在列 tinyint 上执行此 CAST?还是我做错了什么?

提前致谢。

最佳答案

如果您使用 IList<T>.ContainsList<byte> Entity Framework 不会转换。

List<byte> byteValue = new List<byte> { 6 };
var entityList = from r in rep.DataContext.FooTable
where byteValue.Contains(r.TinyintColumn)
select r;

我遇到了同样的问题,blogged about it .

关于c# - 为 tinyint 列生成的查询将 CAST 引入到 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9016265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com