EF6 LINQ 投射专栏
EF6 LINQ cast column
我的实体有一个名为 Value
的字段。该字段是一个 string
,但它也包含 int
和 DateTime
值。
我的常规查询类似于
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
我的实体有一个名为 Value
的字段。该字段是一个 string
,但它也包含 int
和 DateTime
值。
我的常规查询类似于
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