我的實體有一個名爲Value
的字段。該字段是string
,但它也保存了int
和DateTime
值。EF6 LINQ鑄柱
我經常查詢是一樣的東西
SELECT * FROM tableA
WHERE [email protected] and CAST(value as int/datetime/varchar)[email protected]
我怎樣才能讓EF生成一個鑄件的查詢?
編輯:創建建議對uservoice
我的實體有一個名爲Value
的字段。該字段是string
,但它也保存了int
和DateTime
值。EF6 LINQ鑄柱
我經常查詢是一樣的東西
SELECT * FROM tableA
WHERE [email protected] and CAST(value as int/datetime/varchar)[email protected]
我怎樣才能讓EF生成一個鑄件的查詢?
編輯:創建建議對uservoice
它被執行並由EF團隊完成。檢查問題中列出的用戶發票鏈接
這裏是例子:
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;
}
你能說你應該如何基於'entityType'來施放價值嗎? –
@teovankot entityType是告訴我是否應該轉換爲int,datetime或varchar的另一個字段... ID = 1表示int,2表示日期時間和0字符串... – Leonardo
您應該絕對以相反方式執行此操作:cast '@價值'到所需的類型。在比較數據庫字段之前對數據庫字段應用功能會損害索引。 –