[英]EF core fetch string as enum type
我在 MYSQL 数据库上运行一个大型SELECT
,其数量级为 100.000 行。 我正在获取的表有一个名为type
的列,它有 4 个不同的字符串值。
|Id|Type |MetaKey|MetaValue|
|===========================|
|01|'line'|'AKey' |AValue |
|02|'line'|'AKey1'|AValue |
|03|'Ship'|'AKey2'|AValue |
|04|'Fee' |'AKey3'|AValue |
|05|'Ship'|'AKey4'|AValue |
目前主要的瓶颈似乎是网络传输,所以最佳情况下我想将这 4 个不同的字符串值转换为一个 int 枚举(或一些小东西),以便我保存 memory 进行传输。
我猜 MYSQL CASE
允许在 SQL 中执行此操作。
EF核心可以做到这一点吗? LINQ 语法是什么样的?
重申一下 - 我希望在数据库中完成转换,而不是在 C# 客户端中完成。
编辑:抱歉 - 我很困惑,这是一个 MYSQL 数据库而不是 MSSQL 数据库。
您的查询应如下所示:
public enum MyEnum
{
Unknown = 0,
Line = 1,
Ship = 2,
Free = 3
}
var query =
from t in ctx.Table
select new
{
c.Id,
c.MetaKey,
c.MetaValue,
Type = (MyEnum)(
c.Type == "line" ? 1 :
c.Type == "Ship" ? 2 :
c.Type == "Fee" ? 3 : 0)
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.