实体框架与企业库
本文关键字:企业库 框架 实体 | 更新日期: 2023-09-27 18:35:21
我正在做一个 asp.net 项目,客户让我远程访问数据库。
数据库有两个用户。一个用户具有只读访问权限,而另一个用户具有所有者访问权限。客户端说,出于读取数据的目的,我们应该使用第一个,对于插入等,我们应该使用第二个。
此外,客户端告诉我尽可能多地使用存储过程,因为有很多数据将来自数据库服务器。我想使用实体框架(edmx)。是否可以将存储过程与它一起使用?在实体框架之前,我一直在使用企业库进行存储过程。我是否需要返回并将其与存储过程一起使用,以便所有与数据库相关的工作都在数据库服务器端完成,而不是使用实体框架将数据带到 Web 服务器?
另外,如何使用一个用户进行只读,而其他用户访问同一数据库进行插入?我需要创建两个 Web 配置吗?使用户只读并更快地获得结果有什么区别吗?
如果有更好的方法,请建议我。
请指教。
存储过程与 EF 一起使用。但请注意,使实体使用存储过程确实很难。
EF 在不编写 SQL 语句的情况下生成查询,它通过观察实体中的更改来生成 SQL 语句。它只是将您的实体映射到数据库表。因此,如果您有名为"Item"的表,它会在代码端创建一个对象"Item"。可以使用代码制作"Item"实体,并调用 EF 的相关方法,以将实体中所做的更改反映到数据库。
可以根据操作动态创建连接字符串。
这个问题太宽泛了,所以我不知道这是否有帮助。
问他,通过一个用户进行读取访问权限并通过另一个用户插入访问权限,他觉得他有什么优势,如果他有正当的理由,那么只要确保他知道他在增加开发时间和维护方面做出了权衡。
其次,使用存储过程与数据量有什么关系? 如果您正在执行大量查询(如果您正在拉取大量数据,则可能不会),那么使用存储过程可能会略微减少网络流量,因为触发存储进程的请求将小于查询字符串。 不过,这甚至不值得担心。
Jeff Atwood 实际上对存储的过程有一些很好的评论:http://www.codinghorror.com/blog/2004/10/who-needs-stored-procedures-anyway.html
在这里:http://www.codinghorror.com/blog/2005/05/stored-procedures-vs-ad-hoc-sql.html
通常,当人们想要限制开发人员使用存储进程时,这是为了感知到的好处,而不是真实的,他们没有意识到他们无缘无故地放慢了开发速度。 并不是说存储的过程不好,但它们有自己的位置,有一个规则说它们应该尽可能广泛地使用是没有意义的。
实体框架不会发生在服务器端。它生成一个 sql 查询,查询在数据库上执行。结果集它通过 ef 映射到对象。这称为 ORM。谷歌应该有大量关于ORMS的信息。
布莱尔