По нескольким причинам, о которых я не имею права говорить, мы определяем представление о нашей базе данных 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 для генерации модели. Есть ли способ, чтобы структура сущностей не включала какое-либо поле этого представления в качестве первичного ключа?