我有一個類似於鍵值對設計結構的表。我想根據關鍵和值來查詢表格,但我面臨一些問題。以下是我的表格結構和預期輸出。使用EF查詢鍵值對設計表使用EF
表1:
ID KEY VALUE
1 NAME abc 2 AGE 12 3 DEPARTMENT CCB 4 NAME xyz 5 AGE 13 6 DEPARTMENT TSS 7 NAME cde 8 AGE 12 9 DEPARTMENT TMS
Table 2:
KeyId KeyName
1 Name
2 Department
3 Age
爲我表1中直接鍵名進入容易理解,實際上存在着表之間的外鍵關係1和表2.
另外,表2可以容納任何東西作爲KeyName而不是n無論是姓名,部門還是年齡。
預期成果是:我需要用名稱來獲取數據包含%C%和年齡= 12
Name Age Department
abc 12 CCB
cde 12 TMS
注意:我在尋找一個解決方案EF即LINQ查詢,而不是SQL查詢。
選項我嘗試了,下面是查詢:
變種臨時= (from c in table1
where c.Name.Contains("C") || C.Age == 12
Select new { C.Name, C.Age })
思想應用「OR」條件,使我得到這兩個條件滿足,然後篩選使用「一旦我從數據庫中獲取數據,就會在內存中執行「AND」。但我無法成功。
你的桌子設計不合適。名稱,年齡和部門沒有關係,因此幾乎不可能編寫一個查詢(用linq或sql)來保證正確的數據。考慮重新設計你的桌子。 – Mansfield
@Mansfield我不認爲你可以從一張桌子上看出來。 DotNetNuke的ProfileProperties表具有類似的設計。可能有另一個表具有將每個用戶鏈接到此表中的ID的ID列表。 –
@ L_7337問題是,沒有提及這個其他表格,但它是需要可靠地生成問題的「期望輸出」的。沒有它,這3個鍵之間的唯一聯繫就是它們在表中的相對位置,這是弱執行的,並導致不必要的低效和令人費解的查詢。 – nmclean