ด้วยเหตุผลหลายประการที่ฉันไม่มีเสรีภาพที่จะพูดถึงเรากำลังกำหนดมุมมองบนฐานข้อมูล 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 เพื่อสร้างแบบจำลอง มีวิธีที่จะไม่ให้กรอบงานเอนทิตีรวมฟิลด์ใด ๆ ของมุมมองนี้เป็นคีย์หลักหรือไม่?