添加视图到EntityFramework 6不起作用?

时间:2017-06-30 11:51:32

标签: c# sql entity-framework view

我有以下观点:

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.

2 个答案:

答案 0 :(得分:0)

创建视图时使用SCHEMABINDING,这将允许添加PK,如上一个答案中所述:How do you add a primary key to a sql view? - Or alternate way to link views to LINQ-2-Entities

答案 1 :(得分:0)

我将视图更改为以下内容:

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

问题解决了:)