问题标签 [datamapper]

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 投票
2 回答
1504 浏览

php - 数据映射器 + 观察者模式

我正在用 PHP 构建一个应用程序,并且我正在使用数据映射器模式进行数据库访问。我正在考虑使用观察者模式让我的所有映射器观察他们创建的实体,以便他们可以自动将任何更改保存回数据库,而无需我手动解析它们。

我只是想知道这是一个好主意,还是不好的做法等?

我通常使用一些在层次结构中链接在一起的对象,目前必须手动将每个对象解析到它的映射器,这相当乏味,所以只是想提出一个更好的解决方案。

谢谢,杰克

0 投票
2 回答
619 浏览

ruby - 如何使 ruby​​ 库 DataMapper 的 in_memory 适配器正确保存模型的 id?

这与 ruby​​ ORM 库DataMapper 相关

这个 wiki描述了如何为 DataMapper 使用 in_memory 适配器。正确的数据库适配器会在每个模型实例上保存一个递增的唯一 id - in_memory 似乎没有这样做,如下面的片段所示:

检查结果如下:

例如,如果我使用另一个适配器连接到一个 sqlite 数据库id将被设置为“1”。

我想通过 id 引用我的模型,因为我不能保证其他属性的唯一性。有没有办法让 in_memory 适配器为其模型保存一个递增的、唯一的 id 属性?

0 投票
3 回答
1737 浏览

.net - 除了 .NET 中的 AutoMapper 之外,还有其他对象到对象的映射解决方案吗?

我想知道 .NET 世界中是否有其他类似的开源解决方案,尤其是对于 2.0 框架

0 投票
1 回答
433 浏览

ruby - Merb & DataMapper - 访问数据库连接信息?

我将 Merb 和 DataMapper 与 MySQL 数据库一起使用。我想从我的 Merb 应用程序的 Rake 任务中访问数据库名称、用户和密码。我想我可以YAML.load()使用 database.yml,但这看起来很难看。有任何想法吗?

0 投票
4 回答
1780 浏览

design-patterns - Fowler 数据映射器对象创建

我一直在将 Fowler 模式用于具有数据映射器的域模型,并且在如何实现 CRUD 的创建部分时遇到了一些困惑。我无法利用现有的 ORM 技术,因为底层数据源是自定义系统。困扰我的领域是当我需要创建一个新对象时如何调用底层 ORM。My Domain Layer 看不到我的 ORM,除了我的查找器。

我不确定我是否走在正确的轨道上,但以下是我能看到的唯一选项:

  1. 以与 Fowler finder 相同的方式处理创建函数。在域模型层中为 ORM 类的创建方法创建一个接口。然后让领域模型调用一个 DI 容器,并根据接口实例化一个 ORM 类的实例。

  2. 在 ORM 中对象 A 的水合期间,附加一个委托,该委托指向对象 B 的 ORM 上的创建方法。要求域对象 A 被水合,您可以调用对象 A 上的委托,这将调用对象 B 的映射器上的 create 方法。

  3. ???

我一定遗漏了一些东西,因为这不可能那么复杂。任何帮助将非常感激。

谢谢

0 投票
5 回答
31275 浏览

c# - 数据映射器、表数据网关(网关)、数据访问对象(DAO)和存储库模式有什么区别?

我正在努力提高我的设计模式技能,我很好奇这些模式之间有什么区别?它们看起来都是一样的——封装特定实体的数据库逻辑,因此调用代码不知道底层持久层。根据我的简短研究,它们通常都实现了您的标准 CRUD 方法并抽象出特定于数据库的细节。

除了命名约定(例如 CustomerMapper vs. CustomerDAO vs. CustomerGateway vs. CustomerRepository)之外,有什么区别(如果有的话)?如果有区别,你什么时候会选择一个而不是另一个?

在过去,我会编写类似于以下的代码(自然是简化了 - 我通常不会使用公共属性):

并有一个CustomerGateway为所有方法实现特定数据库逻辑的类。有时我不会使用接口并将 CustomerGateway 上的所有方法都设为静态(我知道,我知道,这使得它的可测试性降低)所以我可以这样称呼它:

这似乎与 Data Mapper 和 Repository 模式的原则相同;DAO 模式(我认为这与网关相同?)似乎也鼓励特定于数据库的网关。

我错过了什么吗?有 3-4 种不同的方式来做同样的事情似乎有点奇怪。

0 投票
1 回答
907 浏览

ruby-on-rails - Rails 应用程序需要调整以使用 Datamapper 而不是 ActiveRecord

我正在尝试在 Rails 应用程序中使用 Datamapper 作为 ActiveRecord 的替代方法。

我遵循了各种设置说明,并让 Datamapper 在我的应用程序中工作。

但是我注意到不再起作用的第一件事是:

我相信这与 ActiveRecord 助手相关联 - 是否有另一种方法可以在 Datamapper 视图中报告验证失败?

我是否可能会遇到更多需要在我的应用程序中进行调整的此类功能示例?

这个项目是可行的还是可能涉及很多复杂的黑客?

是否有人记录了所有必需的应用程序调整?

我怀疑 Datamapper 没有被广泛使用,因为我发现在 Google 上很难找到这些简单的说明。

0 投票
1 回答
568 浏览

ruby-on-rails - 使用 Datamapper 和 Rails 进行重定向

我的 routes.rb 中有一行将我的专辑模型映射为资源:

但是,在 Rails 中使用 Datamapper 代替 ActiveRecord,为什么会这样:

导致重定向到:

代替:

如果需要进一步的上下文,这里列出了我从 Controller 中创建的完整方法:

按照惯例,这个方法是作为我在 new.html.erb 中的“新”方法提交表单的结果调用的:

0 投票
3 回答
2139 浏览

mysql - 使用 DataMapper 选择随机数据

我试图用 DataMapper 选择随机数据集,但似乎没有这样的功能支持。

例如,我有一组数据:

可能有很多数据,超过 100k 行。

我需要将数据映射到对象:

所以,问题是:如何从表中选择随机数据?

SQL 中的类似查询将是:

0 投票
2 回答
1633 浏览

ruby-on-rails - 您如何通过 Ruby 或 Ruby on Rails 与 BerkeleyDB 数据库通信?

我不知道如何在 Ruby 或 Rails 项目中设置 BerkelyDB 数据库。

有没有人有任何配置经验,他们可以谈论?

也许使用 ActiveRecord 或 Datamapper?