Hakkında konuşma özgürlüğüm olmayan birkaç nedenden ötürü, Sql Server 2005 veritabanımızda şu şekilde bir görüş tanımlıyoruz:
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
Buradaki fikir, Entity Framework'ün yaptığı bu sorguyu temel alan bir varlık oluşturacağı, ancak aşağıdakileri belirten bir hatayla onu oluşturacağıdır:
Uyarı 6002: Tablo / görünüm 'Keystone_Local.dbo.MeterProvingStatisticsPoint' tanımlı bir birincil anahtara sahip değil. Anahtar çıkarıldı ve tanım salt okunur bir tablo / görünüm olarak oluşturuldu.
Ve CompletedDateTime alanının bu varlık birincil anahtarı olacağına karar verir.
Modeli oluşturmak için EdmGen kullanıyoruz. Varlık çerçevesinin bu görünümün herhangi bir alanını birincil anahtar olarak içermemesinin bir yolu var mı?