我需要你的意见。我在Efw 6.1的ASP MVC应用程序中使用了Model First方法。数据库中有太多表(大约200个),由于时间限制,我很难为其编写代码。
当模型第一技术用于任何大型数据库应用程序而不是代码优先时,是否存在任何性能问题?
答案 0 :(得分:2)
在Visual Studio中
在解决方案资源管理器
右键点击项目
实体框架 - 反向engenerieng
VS创建
a)上下文
b)所有模型
答案 1 :(得分:2)
答案 2 :(得分:2)
要在EF中定义模型,您可以使用Code First或“图形”模型,您可以在其中绘制表格和关系。请注意:
因此,创建Model或Code First模型所需的时间是相同的。在维护模型时,你应该考虑一下你是否觉得更舒服。
如果您的模型将发展,在Code First中您可以使用迁移。在另一种情况下,您可以直接“右键单击”选项将模型更改应用于数据库。迁移使您可以更好地控制数据库升级(甚至降级)过程,并且可以轻松地将它们应用于开发数据库,也可以应用于任何其他数据库(生产,登台......)。
如果你担心性能,我告诉两个模型的内存相似。在两种情况下,创建视图的最耗时的任务之一将花费相同的时间。当应用程序启动并且第一次使用上下文时会发生这种情况。但您可以使用Entity Framework Power Tools Beta 4预先创建此视图(不要担心它是Beta 4,您可以放心使用。我已经使用此工具多年了。)
正如您在EF Power Tool的链接中所看到的,它为您的菜单添加了有趣的选项,但我在谈论创建视图。您可以将它用于Code First或Model。
最后,如果您使用Code First,您可以创建几个不同的上下文,每个上下文只有部分表。如果这对你来说真的是一个问题,那么这会提高性能。
因此,决定应基于您的个人偏好和工作方式。如果您没有首选项,我建议您使用Code First,更新代码中的实体,并使用迁移将更改应用于数据库。认为一个非常大的模型与许多实体的关系可以是难以导航和看到的。在Code First中,您始终可以按名称查找实体(类),或者将实体组织在多个不同的文件中。
作为最后一点,使用模型可以完成的大部分工作也可以通过Code First完成。除非你打算做一些非常具体的事情,否则我怀疑这是选择其中一个的理由。