向 EntityFramework 6 添加视图不起作用?
Posted
技术标签:
【中文标题】向 EntityFramework 6 添加视图不起作用?【英文标题】:Add view to EntityFramework 6 not work? 【发布时间】:2017-06-30 11:51:32 【问题描述】:我有以下看法:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER VIEW [dbo].[RateAverageValueView] WITH SCHEMABINDING
AS
SELECT
Id = NEWID(),
AverageRateValue = AVG(Value)
FROM dbo.Rate
GO
但我无法将其添加到 EF 模型(edmx 文件)。
我知道它应该有一个主键列,所以我添加了Id = NEWID()
,但它不起作用。
有什么问题?
在 Visual Studio 的警告部分中列出了以下错误:警告:
Error 6013: The table/view 'YoutubeLinks.dbo.RateAverageValueView' does not have a primary key defined and no valid primary key could be inferred. This table/view has been excluded. To use the entity, you will need to review your schema, add the correct keys, and uncomment it.
【问题讨论】:
为什么不写一个标量值函数? 我只是找到问题的原因以获得更多经验。 什么不起作用?请具体。您收到任何错误消息吗? 查看警告部分 【参考方案1】:在创建视图时使用 SCHEMABINDING
,这将允许添加 PK,如上一个答案中所述:How do you add a primary key to a sql view? - Or alternate way to link views to LINQ-2-Entities
【讨论】:
【参考方案2】:我将视图更改为以下:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER VIEW [dbo].[RateAverageValueView] WITH SCHEMABINDING
AS
SELECT
Id = 1,
AverageRateValue = AVG(Value)
FROM dbo.Rate
GO
问题解决了:)
【讨论】:
以上是关于向 EntityFramework 6 添加视图不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
错误:无法解决依赖关系。 “entityframework 6.4.4”与“EntityFramework 6.2.0”约束EntityFramework(= 6.2.0)不兼容
如何在不将实例模型添加到数据库的情况下向实体模型添加FK约束?