Per diversi motivi di cui non ho la libertà di cui parlare, stiamo definendo una vista sul nostro database SQL Server 2005 in questo modo:
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
L'idea è che Entity Framework creerà un'entità in base a questa query, cosa che fa, ma la genera con un errore che indica quanto segue:
Avviso 6002: la tabella / vista "Keystone_Local.dbo.MeterProvingStatisticsPoint" non ha una chiave primaria definita. La chiave è stata dedotta e la definizione è stata creata come tabella / vista di sola lettura.
E decide che il campo CompletedDateTime sarà questa chiave primaria dell'entità.
Stiamo usando EdmGen per generare il modello. Esiste un modo per evitare che il framework di entità includa un campo di questa vista come chiave primaria?