因为我没有权利谈论几个原因,所以我们正在以下方式定义我们的 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生成模型。有没有办法使Entity Framework不将该视图的任何字段包含为主键?