【发布时间】:2010-11-04 01:00:06
【问题描述】:
出于几个我无权谈论的原因,我们在 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 生成模型。有没有办法不让实体框架包含这个视图的任何字段作为主键?
【问题讨论】:
标签: entity-framework sql-server-2005 .net-3.5 primary-key sql-view