C# 使用架构支持连接权限

C# 使用架构支持连接权限,c#,linq,entity-framework,stored-procedures,ado.net,C#,Linq,Entity Framework,Stored Procedures,Ado.net,延迟加载是为了解决一个永远不应该存在的问题而添加的错误语句,它是ORM及其即插即用特性引入的。应仅在需要时读取数据。开发人员应负责根据应用程序上下文实现此逻辑 如果您的应用程序逻辑在维护状态方面存在问题,则没有任何工具可以提供帮助。事实上,它会掩盖真正的问题,直到为时已晚,从而使情况变得更糟 Database first是设计良好的应用程序的唯一解决方案。很久以前,文明就意识到了坚固的渡槽和下水道系统的重要性。高级代码可以而且将在任何时候被替换,但数据会保留。若数据库设计良好,重写整个应用程

延迟加载是为了解决一个永远不应该存在的问题而添加的错误语句,它是ORM及其即插即用特性引入的。应仅在需要时读取数据。开发人员应负责根据应用程序上下文实现此逻辑

  • 如果您的应用程序逻辑在维护状态方面存在问题,则没有任何工具可以提供帮助。事实上,它会掩盖真正的问题,直到为时已晚,从而使情况变得更糟

  • Database first是设计良好的应用程序的唯一解决方案。很久以前,文明就意识到了坚固的渡槽和下水道系统的重要性。高级代码可以而且将在任何时候被替换,但数据会保留。若数据库设计良好,重写整个应用程序只需几天时间

  • 应用程序只是美化了数据库访问。大多数情况下仍然如此


  • 这是我多年来在业务应用程序中通过许多不同工具或工具箱生成的代码进行调试后得出的结论。广告所宣传的更快的结果甚至无法弥补后来试图清理混乱所浪费的时间/精力。性能问题很少是由高需求引起的,而是通过不可用的工具添加的所有“功能”的总和。

    在n层应用程序中,您必须将EF结果重新映射到其他类(DTO或自有POCO或其他类),因为表示层不知道数据访问层,因此,在View564模型中没有这种非常方便的自动生成类。这就是为什么我假设当你调用一个数据库集时,它会通过某种查询调用数据库,我怀疑它是否被服务器优化了,比如说sp。下一个ef获取结果并执行映射到自动生成的类中。您在业务逻辑层中得到这个结果,并以某种方式对其进行过滤(例如使用linq.Where)…EF只获取必要的记录,查询将转换为适当的SQL语句。EF可以在DataContext中本地缓存对象(并跟踪对实体所做的所有更改),但只要您遵循规则仅在需要时保持上下文打开,就不会有问题。我甚至不考虑执行字符串查询(例如DBContext.ExecuteQuery(“从[tablename]中选择*,其中[fieldname]>10)”)。如果你经常需要处理大量的数据,那么EF可能不适合你。但通常简单的应用程序一次只处理少量的记录。即使您有一些向用户“显示所有记录”的功能,您也可以实现分页,这样就不会一次显示所有100000条记录!对于简单的应用程序,一切都可以手动完成(EF太重),但对于大数据,EF似乎效率不够。结论:完全没有理由使用EF。“EF是如此广泛使用的员工”-这意味着什么?请您提供您使用的首字母缩略词的初步描述?我看到EF、DTO、DAL、BLL和SP所指的内容几乎没有上下文。幸运的是,我事先知道其中的大部分,但实际上我不得不谷歌SP和BLL,只要掷硬币