EF6 LINQ 投射专栏

EF6 LINQ cast column

我的实体有一个名为 Value 的字段。该字段是一个 string,但它也包含 intDateTime 值。

我的常规查询类似于

SELECT * FROM tableA 
WHERE entityType=@eID and CAST(value as int/datetime/varchar)==@value

如何让 EF 生成带有转换的查询?

编辑:在 uservoice

上创建建议

示例如下:

        int eId = 1;
        int valueInt = 1;
        DateTime valueDateTime = DateTime.Now;
        string valueString = "Test";

        TableA result;
        switch (eId)
        {
            case 1: result = context.tableA.Where(x => x.entityType == eId && Convert.ToInt32(x.value) == valueInt); break;
            case 2: result = context.tableA.Where(x => x.entityType == eId && Convert.ToDateTime(x.value) == valueDateTime); break;
            case 3: result = context.tableA.Where(x => x.entityType == eId && x.value == valueString); break;
        }

它是由 EF 团队实施和完成的。检查问题

中列出的用户发票link