對於我沒有自由談,我們爲我們的SQL Server上定義2005數據庫,像這樣一個觀點幾種原因:實體框架和SQL Server視圖
CREATE VIEW [dbo].[MeterProvingStatisticsPoint]
AS
SELECT
CAST(0 AS BIGINT) AS 'RowNumber',
CAST(0 AS BIGINT) AS 'ProverTicketId',
CAST(0 AS INT) AS 'ReportNumber',
GETDATE() AS 'CompletedDateTime',
CAST(1.1 AS float) AS 'MeterFactor',
CAST(1.1 AS float) AS 'Density',
CAST(1.1 AS float) AS 'FlowRate',
CAST(1.1 AS float) AS 'Average',
CAST(1.1 AS float) AS 'StandardDeviation',
CAST(1.1 AS float) AS 'MeanPlus2XStandardDeviation',
CAST(1.1 AS float) AS 'MeanMinus2XStandardDeviation'
WHERE 0 = 1
的想法是,實體框架將建立在此基礎上查詢,其中它的實體,但它指出以下錯誤產生的:
警告6002:表/視圖「Keystone_Local.dbo.MeterProvingStatisticsPoint」沒有一個主鍵定義。關鍵是推斷出來的,定義是作爲只讀表/視圖創建的。
並且它決定CompletedDateTime字段將是這個實體主鍵。
我們使用EdmGen生成模型。有沒有辦法不讓實體框架包含這個視圖的任何字段作爲主鍵?
我認爲這是最好的希望。底線是有效的。 – MvcCmsJon 2010-11-13 19:41:51
我試過這個,它不起作用。 EF設計師是否分析視圖定義或僅從數據結果推斷列? – sabanito 2011-11-09 18:37:49
謝謝!它工作完美。 @sabanito我認爲它解析的定義。這就是爲什麼你需要特別包裝IsNull()中的關鍵屬性。我有一個不返回任何空值的視圖(並且不能返回任何空值),但由於寫入邏輯的方式,EF直到我將鍵包裝在IsNull()中時才能確定是否如此。 – Rabbi 2011-12-28 20:27:57