21

我在我的数据库中创建了一个视图,我想将它包含在我的实体模型中。但是,当我尝试通过 VS 2008 更新实体模型时,一条警告消息通知我我尝试添加的 TABLE OR VIEW 没有主键。

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

知道如何解决这个问题吗?

4

2 回答 2

11

这里有一个很好的答案:Entity Framework and SQL Server View(见接受的答案:https ://stackoverflow.com/a/2715299/53510 。)

EF 通过组合所有不可为空的字段来推断视图的 PK。您可以使用 ISNULL 和 NULLIF 来操作视图列的可空性,从而强制 EF 选择您想要的 PK。

于 2011-10-20T01:29:40.120 回答
0

火鸟视图中没有键。相反,使用以下命令将一个(或多个)字段设置为“非空”:

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

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

于 2015-03-12T14:18:01.107 回答