视图和实体框架

时间:2009-08-05 15:45:22

标签: entity-framework views firebird

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

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

如何解决这个问题?

2 个答案:

答案 0 :(得分:11)

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

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

答案 1 :(得分:0)

firebird视图中没有键。而是使用以下命令将一个(或多个)字段设置为“not null”:

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

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