由于几个我无权谈论的原因,我们在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
Run Code Online (Sandbox Code Playgroud)
我们的想法是,实体框架将基于此查询创建一个实体,但它会生成一个包含以下内容的错误:
警告6002:表/视图'Keystone_Local.dbo.MeterProvingStatisticsPoint'没有定义主键.已推断密钥,并将定义创建为只读表/视图.
并且它决定CompletedDateTime字段将是此实体主键.
我们正在使用EdmGen生成模型.有没有办法不让实体框架包含此视图的任何字段作为主键?
entity-framework sql-server-2005 primary-key .net-3.5 sql-view
我如何首先在实体框架代码中使用数据库视图,
我刚刚开始将一个应用程序从原始ADO.NET和嵌入式SQL转换为Entity.我遇到了应用程序使用的其中一个视图的问题.视图没有主键,也没有唯一标识行的列(或列组合).这是选择创建视图:
SELECT
filingmonth,
CEIL(filingmonth / 3),
licnum,
filingyear,
DECODE(GROUPING(insurername), '1', '- All Insured -', insurername),
insurername,
policylinecode,
linedescription,
SUM(NVL(grosspremium, 0)),
SUM(DECODE(taxexempt, 1, grosspremium, 0)),
TRUNC(
CASE
WHEN
(
b.rsn IS NOT NULL
OR A.zeroreport = 1
)
AND b.datereceived IS NULL
THEN A.datereceived
ELSE b.datereceived
END),
SUM(aip.iscompanyadmitted(b.naiccocode, b.naicalienid)),
A.insuredid
FROM
aip.slbtransinsured A
LEFT OUTER JOIN aip.slbtransinsurer b
ON
A.insuredid = b.insuredid
LEFT OUTER JOIN aip.slblinecodes C
ON
b.policylinecode = C.linecode
WHERE
A.submitted = 1
AND A.entryincomplete = 0
GROUP BY …Run Code Online (Sandbox Code Playgroud) 如何使用Entity Framework 4 Code-First定义数据库视图?我在任何地方都找不到任何相关的东西!
.net ×1
.net-3.5 ×1
code-first ×1
database ×1
entity ×1
oracle ×1
primary-key ×1
sql ×1
sql-view ×1
view ×1