C# 实体框架和不断变化的视图?

C# 实体框架和不断变化的视图?,c#,entity-framework,C#,Entity Framework,我们有一个客户,他给了我们一些用VB6编写的代码,并将转换为.Net 4.0。RT数据库是一个只能称之为灾难的数据库。但是,我们不允许改变它。因此,我们正在这个摇摇晃晃的数据库上构建一个应用程序 他们所做的一件事是(等等),根据用户选择的网格中应显示哪些列来创建视图 例如,“联系人”屏幕列出了所有联系人。它们有一个屏幕,可以读取数据库,从视图中获取字段,然后向用户显示可能的列列表。然后用户选择一些(姓氏、名字、出生日期) 然后,代码将使用创建一个新视图(或覆盖现有视图) 从ID=:ID的另一个视

我们有一个客户,他给了我们一些用VB6编写的代码,并将转换为.Net 4.0。RT数据库是一个只能称之为灾难的数据库。但是,我们不允许改变它。因此,我们正在这个摇摇晃晃的数据库上构建一个应用程序

他们所做的一件事是(等等),根据用户选择的网格中应显示哪些列来创建视图

例如,“联系人”屏幕列出了所有联系人。它们有一个屏幕,可以读取数据库,从视图中获取字段,然后向用户显示可能的列列表。然后用户选择一些(姓氏、名字、出生日期)

然后,代码将使用创建一个新视图(或覆盖现有视图)

从ID=:ID的另一个视图中选择“姓氏、姓氏、出生日期”

(另一个视图是包含连接等的大视图。)

然后,每次查看屏幕时,它都使用该视图

因此,视图发生了变化


我们正在使用实体框架。是否可以处理动态视图?我们在演示中使用Linq(我知道,我知道…)来挖掘数据。那么,我们是否可以使用Linq从视图中选择*,然后显示网格?但是,如果视图正在更改,我们需要重新生成EF模型,否?

简单回答:不要将EF用于这些查询。EF模型是在设计时创建的,在运行时更改它意味着有太多问题,不值得这么做。使用EF直接执行动态SQL。

如果基础数据源已更改,则是,更新E.F模型。这可以通过代码来完成吗,仅针对该视图(EF)对象?为什么不基于另一个视图显示并忽略更改的视图,并根据用户指定的内容过滤数据?如果是MVC,我相信你可以通过代码更新它。