З кількох причин, про які я не маю права говорити, ми визначаємо погляд на нашу базу даних Sql Server 2005 таким чином:
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
Ідея полягає в тому, що Entity Framework створить об'єкт на основі цього запиту, який він робить, але він генерує його з помилкою, яка заявляє наступне:
Попередження 6002: У таблиці / перегляді 'Keystone_Local.dbo.MeterProvingStatisticsPoint' не визначено первинний ключ. Ключ був зроблений і визначення було створено у вигляді таблиці / перегляду, доступного лише для читання.
І він вирішує, що поле CompletedDateTime буде первинним ключем цієї сутності.
Ми використовуємо EdmGen для генерування моделі. Чи є спосіб не мати рамки сутності включати будь-яке поле цього перегляду в якості основного ключа?