我有一個LINQ到實體查詢(EF 4.3)指示LINQ到實體,以生成與Oracle兼容SQL
var query = from item in db.TableTest
select item.VAL;
它轉換爲這條SQL語句
SELECT
"Extent1"."VAL" AS "VAL"
FROM "dbo"."TEST_TABLE" "Extent1"
數據庫是甲骨文。
當我執行查詢時,我得到消息,數據表不存在。問題是(「dbo」)部分。如果我刪除它並直接執行此查詢(不通過LINQ,但通過oracleconnection等)
SELECT
"Extent1"."VAL" AS "VAL"
FROM "TEST_TABLE" "Extent1"
然後一切正常。我回到了價值觀。
如何指示Linq To Entities輸出Oracle兼容的SQL?
感謝您的快速回復。我不允許在數據庫中更改任何內容。我也是一位oracle新手。 我沒有實體模型。我使用POCO類。我發現通過使用[Table(「TABLE_NAME」,Schema =「SCHEMA_NAME」)]屬性註釋我的實體類,我解決了問題 – 2012-08-10 15:20:53
@Saysmaster我不知道如果您是先使用代碼還是模型優先方法沒有指定)。在我的回答中,我假設你使用的是實體模型,所以我展示瞭如何修改模型的'Schema'屬性。由於您實際上首先使用代碼,因此您必須手動更改屬性中的「Schema」屬性,就像您自己找到的那樣。 – ken2k 2012-08-10 15:23:56
由於某些原因,我無法從此數據庫中自動生成實體模型。這主要是由於生成器無法在表上找到主鍵。所以我嘗試創建POCO類並將它們手動映射到我想要的表格 – 2012-08-10 15:27:07