我有以下观点:
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.
答案 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
问题解决了:)