我正在使用数据库第一种方法在我的ASP.NET MVC项目中使用Entity Framework 6.我有一个包含所有表关联的.edmx文件。
现在,sql开发人员不希望对表进行任何直接调用,因此他们希望我使用视图。
我试图了解使用Views vs Tables有什么好处?
另外,我担心如果我使用Views并在edmx中应用所有PK和FK并重新生成某些内容,那么更改将会丢失?
对此有何想法?
答案 0 :(得分:3)
您的SQL开发人员是白痴。请随时告诉他们。使用表的视图与直接使用表的唯一方法是禁止写操作。如果这是目标,那么有更好的方法来实现这一目标,只需让应用程序使用没有写权限的用户即可。
通过使用视图,您可以放弃主键,外键和索引,所有这些都可以使查询更具性能。换句话说,您的SQL开发人员要求您更难以使用数据库并对其进行较少的性能查询。换句话说,他们不知道他们在谈论什么。
如果应用程序需要写入(坦率地说,很少有应用程序没有写入),那么无论如何都会有视图。如果他们真的只关心实体框架进行编写,那么他们也可以为CREATE,UPDATE等任务创建存储过程,并且可以将这些存储过程集成到Entity Framework中。但是,我几乎可以向你保证,实体框架正在生成比他们手写的更好的SQL,如果没有其它原因,那么它的使用和贡献远远超过你在员工身上的人数。