我在實體框架6.1.3中結合使用EntityFramework.SQLServerCompact 6.1.3 for SQL Server Compact 4.0。我有一個名爲SingleEntities的表格,其中包含幾個基本列。該表有4行作爲testdata。當我嘗試使用以下代碼檢索所有4行時:由實體框架生成的SQL查詢包含[dbo]並且沒有返回任何結果
var entities = context.SingleEntities.ToList();
沒有行被返回並且沒有顯示錯誤。當我檢查此代碼創建查詢,我看到這個查詢:
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[FirstName] AS [FirstName],
[Extent1].[LastName] AS [LastName],
[Extent1].[BeginDate] AS [BeginDate],
[Extent1].[EndDate] AS [EndDate]
FROM [dbo].[SingleEntities] AS [Extent1]
當我直接在數據庫上運行此查詢,我收到此錯誤:
Error Code: 80040E14 Message : The table name is not valid. [ Token line number (if known) = 7,Token line offset (if known) = 18,Table name = SingleEntities ] Minor Err.: 26100 Source : SQL Server Compact ADO.NET Data Provider Num. Par. : 7 Num. Par. : 18 Err. Par. : SingleEntities
當我刪除了[DBO]。部分在查詢中,查詢給我我想要的結果。
如何判斷實體框架不添加[dbo]。部分查詢?我試圖用IDbCommandInterceptor做到這一點,但我仍然沒有得到任何結果。
你確定你是在正確的數據庫中查找數據 - 請分享你的連接字符串 – ErikEJ
您正在尋找從問題錯誤的角度。 dbo模式中的表是? –
@ErikEJ你的回答觸發我再次檢查。連接字符串對於可執行文件有效。但在我的過程中,我從可執行文件更改爲單元測試,並忘記了他們需要使用連接字符串自己的app.settings。所以事實上,數據庫畢竟是空的。 – Cornelis