问题标签 [data-access]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
1745 浏览

c# - 创建适用于 System.Object 的扩展方法的良好做法?

我想知道是否应该创建适用于对象级别的扩展方法,或者它们是否应该位于类层次结构中的较低点。我的意思是大致如下:

我编写了这些方法,因为我必须处理很多可能为空的数据库数据(来自 OleDbDataReader)(但不应该),因为不幸的是,底层数据库对可能为空的列非常自由。为了让我的生活更轻松一点,我想出了这些扩展方法。

我想知道这是好的风格,可接受的风格还是坏的风格。我有点担心它,因为它有点“污染”对象类。

提前谢谢你和最好的问候:)

基督教

PS我没有故意将其标记为“主观”。

0 投票
6 回答
183 浏览

.net - How important is it for me to pool my connections?

It has been suggested to me that I rearrange my code to "pool" my ADO connections. On each web page I would open one connection and keep using the same open connection. But someone else told me that was important 10 years ago but is not so important now. If I make, let's say, 5 db calls on a web posting, is it problematic to be using 5 separate connections that I open/close?

0 投票
1 回答
4727 浏览

.net - 连接到 AS400 (ISeries) 时出错

我正在尝试使用 .net 类连接到 AS400 服务器。
我添加了对 IBM.Data.DB.iSeries 的引用并使用以下代码:
var conn = new iDB2Connection("DataSource=111.111.111.111;UserID=xxx;Password=xxx; DataCompression=True;");
conn.Open();


运行 64 位时出现以下异常:“提供程序无法在 64 位模式下运行。”
运行 32 位:发生意外异常。类型:System.DllNotFoundException,消息:无法加载 DLL 'cwbdc.dll':操作系统无法运行。(来自 HRESULT 的异常:0x800700B6)。

我已卸载 Client Access 并再次安装它。cwbdc.dll 确实存在于 system32 和 syswow64 中。如果我使用 odbc,连接到 AS400 没有问题。

我正在运行 64 位版本的 Windows 7。有
什么想法吗?

/吉米

0 投票
6 回答
111650 浏览

ruby-on-rails - 在 Rails 中的一次调用中保存多个对象

我在rails中有一个方法正在做这样的事情:

问题是我添加的实体越多,这需要的时间就越长。我怀疑这是因为它必须为每条记录访问数据库。由于它们是嵌套的,我知道在拯救父母之前我无法拯救孩子,但我想一次拯救所有父母,然后拯救所有孩子。做这样的事情会很好:

只需两次数据库命中即可完成所有操作。有没有一种简单的方法可以在rails中做到这一点,还是我一次只能做一个?

0 投票
2 回答
521 浏览

.net - 推荐.NET数据访问层/中间层

我目前正在创建一个 MVC 应用程序,该应用程序可能会扩展为包括 silverlight、wpf 和可能的 windows phone,它们都使用相同的数据。

所以我创建了一个类库来保存我的所有对象,并创建了 MVC 应用程序。

我的问题是访问数据的最佳方式是什么?考虑到未来可能的扩张。

我应该使用 Web 服务/WCF 吗?RIA 服务?远程?或者是其他东西。

人们过去使用过什么,您有什么推荐的?

谢谢

0 投票
1 回答
51 浏览

class - 通过集合访问数据库

我有一个 3 层应用程序,我需要在其中获取数据库结果并填充 UI。我有一个处理消息的 MessagesCollection 类。我从数据库加载我的用户。在用户实例化时(即 new User()),执行 MessageCollection Messages = new MessageCollection(this)。消息集合接受用户作为参数。

我想收到给 Bob 的消息。

GetUnreadMessages 调用我的业务数据提供者,后者又调用数据访问层。业务数据提供者返回列表。

我的问题是 - 我不确定这里的最佳实践是什么 - 如果我在 MessagesCollection 类的数组中有一组消息,我可以实现 ICollection 以提供 GetEnumerator() 和遍历消息的能力。但是如果消息发生变化并且用户加载了旧消息会发生什么?

大消息集合呢?如果我的用户有 10,000 条未读消息怎么办?我不认为访问数据库并返回 10,000 个 Message 对象会很有效。

0 投票
1 回答
1775 浏览

c# - WinForms 应用程序的最佳数据访问模型

对于 C# Winforms 应用程序,哪种数据访问模型具有最佳性能和速度?

  • 数据集?
  • 休眠?
  • 实体框架?

为什么人们会说不要使用 Datasets ?

0 投票
6 回答
8416 浏览

asp.net - ASP.net DAL DatasSet 和 Table Adapter 不在命名空间中 - Northwind 教程

我一直在尝试通过http://www.asp.net/learn/data-access/tutorial-01-cs.aspx找到的“创建数据访问层”教程

我创建数据库连接,创建类型化数据集和表适配器,指定 sql 等。

当我将代码添加到表示层(在本例中为名为 AllProducts.aspx 的页面)时,我找不到 NorthwindTableAdapters.ProductsTableAdapter 类。我试图导入 NorthwindTableAdapters 命名空间,但它没有显示出来。在解决方案资源管理器类视图中查看确认有一个 Northwind 类,但不是我正在寻找的命名空间。

我已经尝试了几个在线教程,它们都具有基本相同的步骤,并且我得到了相同的结果。

谁能给我推动正确的方向?

我收到错误:在 Imports 'NorthwindTableAdapters' 中指定的命名空间或类型不包含任何公共成员或找不到。确保命名空间或类型已定义并包含至少一个公共成员。

我想我可能需要添加一个引用,或者他们可能正在创建一个单独的类并将其导入到他们的主项目中。如果是这种情况,教程不会提到这一点。

供应商Test2.aspx.vb:

结束类

0 投票
1 回答
219 浏览

c# - 访问修饰符 - 业务对象的属性 - 获取和设置

我将 LINQ to SQL 用于 DataAccess 层。我有与数据访问层类似的业务对象。

我已经让数据提供者收到消息 #23。在消息实例化时,在消息构造函数中,它获取 MessageType 并创建 MessageType 类的新实例并从数据库中填写 MessageType 信息。

所以; 我希望它获得消息的 MessageType 的名称。

我还希望管理员设置 MessageType

但我不希望用户公开设置 MessageType.Name。但是当我创建一个新的 MessageType 实例时,Name 属性的访问修饰符是公共的,因为我想从外部类(我的数据访问层)设置它。

我可以将其更改为内部属性,以便我的类可以像公共变量一样访问它,并且不允许我的其他应用程序访问修改它。

这仍然感觉不对,因为它似乎是公共财产。在这种情况下,公共访问修饰符是否不好?任何提示或建议将不胜感激。

谢谢。

0 投票
3 回答
221 浏览

c# - 业务对象之间过度可访问且资源匮乏的关系。我怎样才能解决这个问题?

首先,这似乎是一个很长的问题。我不认为它是......代码只是我目前正在做的事情的概述。感觉不对,所以我正在寻找建设性的批评和警告,以了解我可以做什么的陷阱和建议。

我有一个包含业务对象的数据库。
我需要访问父对象的属性。
我需要通过业务对象维护某种状态。

如果您查看这些类,我认为访问修饰符不正确。我不认为它的结构很好。大多数关系都使用公共属性建模。SubAccount.Account.User.ID <--所有这些都是公开的..

有没有比这更好的方法来模拟类之间的关系,所以它不是那么“公开”?

这个问题的另一部分是关于资源:

如果我要创建一个返回列表的 User.GetUserList() 函数,并且我有 9000 个用户,那么当我调用 GetUsers 方法时,它将创建 9000 个用户对象,并且在其中将创建 9000 个新的 AccountCollection 对象。我该怎么做才能使这个项目不那么耗资源?

请在下面找到代码并将其撕成碎片。