由于几个我无权谈论的原因,我们在 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
这个想法是实体框架将基于此查询创建一个实体,它确实这样做了,但它生成它时会出现一个错误,指出以下内容:
警告 6002:表/视图“Keystone_Local.dbo.MeterProvingStatisticsPoint”没有定义主键。已推断出密钥,并将定义创建为只读表/视图。
它决定 CompletedDateTime 字段将是这个实体的主键。
我们正在使用 EdmGen 来生成模型。有没有办法不让实体框架包含这个视图的任何字段作为主键?