2010-01-05 51 views
3

我有一个名为Item的表。实体框架中的视图?

我有一个叫做ItemView的视图,它返回Item +的所有列+一个聚合列,我想只读。

我需要在实体框架中使用它,我不知道该如何使用它,因为在设计器中插入视图时,所有字段都变成实体键,除了没有可用的关系外,我可以不能像基表中那样以相关表的nav-properties的形式访问相关表。

有没有办法让他们成为一个班级?我还可以做些什么?

说我有一个实体项目。 保存此项后我想从视图中检索其计算值,这是如何完成的?

我从来没有在EF中使用视图,应该在这些场景中使用哪种最佳实践?
任何建议,链接,博客,文章,笑话是welcommed。

回答

5

EF Designer会自动将每个NOT NULL字段标记为主键的一部分。您必须手动编辑edmx文件并进行更正。当主键设置正确时,你必须定义表和查看自己之间的关系。你应该阅读本条目:

Entity Framework: Creating a model using views instead of tables

如果你不希望每次更改模型的时间来改变EDMX文件,您可以更改您的视图的定义。如果场被认定为不为空,您可以更改视图定义的:

select field_name from table_name 

select coalesce(field_name,null) field_name from table_name 

这样场不被认为是考虑到不为空,只有主键字段被认为是不空值。