我在我的数据库中创建了一个视图,我想将它包含在我的实体模型中。但是,当我尝试通过 VS 2008 更新实体模型时,一条警告消息通知我我尝试添加的 TABLE OR VIEW 没有主键。
看来,为了给模型增加一个视图,这个必须有一个关键字段!如果不允许视图具有关键字段,我如何将此视图添加到我的模型中,至少在我正在使用的 DBMRS 的 firebird 中。
知道如何解决这个问题吗?
我在我的数据库中创建了一个视图,我想将它包含在我的实体模型中。但是,当我尝试通过 VS 2008 更新实体模型时,一条警告消息通知我我尝试添加的 TABLE OR VIEW 没有主键。
看来,为了给模型增加一个视图,这个必须有一个关键字段!如果不允许视图具有关键字段,我如何将此视图添加到我的模型中,至少在我正在使用的 DBMRS 的 firebird 中。
知道如何解决这个问题吗?
这里有一个很好的答案:Entity Framework and SQL Server View(见接受的答案:https ://stackoverflow.com/a/2715299/53510 。)
EF 通过组合所有不可为空的字段来推断视图的 PK。您可以使用 ISNULL 和 NULLIF 来操作视图列的可空性,从而强制 EF 选择您想要的 PK。
火鸟视图中没有键。相反,使用以下命令将一个(或多个)字段设置为“非空”:
update RDB$RELATION_FIELDS set RDB$NULL_FLAG = 1 where (RDB$FIELD_NAME = 'A_FIELD') and (RDB$RELATION_NAME = 'A_VIEW')
然后在实体框架中重新导入数据库。