我创建的视图必须使用FULL OUTER JOIN
。
我想在EDMX
中使用DbFirst方法使用此视图。
但EDMX
正在产生下一个警告:
<!--Errors Found During Generation:
warning 6013: The table/view 'MyView' 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.
我试图通过添加来解决这个问题
CREATE UNIQUE CLUSTERED INDEX PK_MyView ON [dbo].[MyView] (Id)
但是Sql说:
Cannot create index on view "dbo.MyView" because it uses a LEFT, RIGHT, or FULL OUTER join, and no OUTER joins are allowed in indexed views. Consider using an INNER join instead.
有没有办法将没有PK的视图添加到edmx或将PK添加到视图中。
答案 0 :(得分:1)
您正在创建索引视图,并且您可以在索引视图中对连接类型进行限制。主要是,您只能执行内部联接。不允许所有其他类型的连接。
此限制有一个解决方法,您可以阅读here,了解它是否适合您的情况。但这并不是一个特别有吸引力的解决方法。
除非您打算使用索引视图来聚合数据,否则您通常不需要索引视图,这是索引视图主要用于的数据。否则,在基表上使用适当的索引应该不需要索引视图。