视图和实体框架

问题描述:

我在我的数据库中创建了一个视图,我希望将其包含在我的实体模型中。但是,当我尝试通过VS 2008更新实体模型时,会有一条警告消息告诉我,我试图添加的TABLE或VIEW没有主键。视图和实体框架

看来,为了一个视图添加到模型中,这必须有一个关键的领域!我如何将这个视图添加到我的模型中,如果视图不允许有关键字段,至少在Firebird中是我正在使用的DBMRS。

如何解决这个任何想法?

+0

下面是一个Visual Studio扩展,所有这一切给你,看看这个帖子:[?由于缺乏对ADO.NET实体框架设计的SQL视图的支持感到沮丧(http://blogs.microsoft。 co.il/blogs/shimmy/archive/2010/09/03/frustrated-by-lack-of-support-for-sql-views-in-ado-net-entity-framework-designer.aspx) – Shimmy 2012-09-02 00:35:27

+2

这篇帖子可能有帮助:[http://smehrozalam.wordpress.com/2009/08/12/entity-framework-creating-a-model-using-views-instead-of-tables/](http://smehrozalam.wordpress。 com/2009/08/12/entity-framework-creating-a-model-using-views-instead-of-tables /) – 2009-11-11 16:57:21

有一个伟大的答案,在这里:Entity Framework and SQL Server View(见接受的答案:https://stackoverflow.com/a/2715299/53510

EF通过组合非空的领域推断的意见PK。你可以使用ISNULL和NULLIF来操纵视图列的可空性,从而强制EF选择你想要的PK。

+4

如果您使用ISNULL或NULLIF,这使得字段是只读的,因此视图变为大部分是只读视图。这只在某些情况下有用 – 2012-03-31 21:02:31

+0

EF 5.0版本上没有适用于我。 – Dave 2013-08-25 18:19:52

火鸟的看法没有钥匙。相反,设置一个(或多个)字段为“NOT NULL”使用下面的命令:

update RDB$RELATION_FIELDS set RDB$NULL_FLAG = 1 where (RDB$FIELD_NAME = 'A_FIELD') and (RDB$RELATION_NAME = 'A_VIEW') 

然后重新导入实体框架数据库。