Por várias razões sobre as quais não tenho liberdade de falar, estamos definindo uma exibição em nosso banco de dados do Sql Server 2005 da seguinte forma:
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
A idéia é que o Entity Framework crie uma entidade com base nessa consulta, o que faz, mas a gera com um erro que afirma o seguinte:
Aviso 6002: A tabela / exibição 'Keystone_Local.dbo.MeterProvingStatisticsPoint' não possui uma chave primária definida. A chave foi inferida e a definição foi criada como uma tabela / exibição somente leitura.
E decide que o campo CompletedDateTime será a chave primária dessa entidade.
Estamos usando o EdmGen para gerar o modelo. Existe uma maneira de não fazer com que a estrutura da entidade inclua algum campo dessa visão como chave primária?