小编pfr*_*ies的帖子

使用ORM时如何实现命令查询分离(CQS)?

CQS体系结构模式背后的原理是将查询和命令分成不同的路径.理想情况下,您的持久性存储可以进行读/写分区,但在我的情况下,有一个规范化的数据库.

如果您使用的是ORM(在我的情况下是NHibernate),很明显在发出命令时会使用ORM.但是,在为用户屏幕设置数据(DTO)时需要运行的各种查询怎么样呢?在执行CQS的查询端时,通常会抛弃ORM吗?

我应该在哪里实现我的查询和DTO预测?直接ADO.NET(datareaders,dtos,datatables,stored procs)?有些查询非常独特,需要很多连接来将所有内容组合在一起.我不想为查询反规范化数据库,但我可以创建视图(穷人的非规范化).

nhibernate orm cqrs

17
推荐指数
2
解决办法
5596
查看次数

Emacs shell找不到ruby gems - 例如,找不到RubyGem haml(> = 0)(Gem :: LoadError)

我的emacs shell无法加载任何已安装的ruby gem.我在尝试从emacs执行任何已安装的gem时遇到Gem :: LoadError,但它可以从Terminal工作.以下是我在环境中审核的所有信息.谢谢你的帮助!

  • 在我的Mac OSX Snow Leopard上运行Emacs.app( 使用通用dmg 从emacsformacosx运行).
  • 安装RVM,然后使用RVM安装Ruby 1.9.2和1.8.7.
  • 安装了几个宝石,包括rails和haml.
  • 没有使用root进行这些安装.

从终端(bash),我可以运行宝石(例如,haml somepage.haml或rails创建someapp)

在emacs中,我设置了shell(bash)路径以加载与终端shell相同的路径(通过〜/ .MacOSX/application.plist).

echo $PATH 从终端和emacs返回相同的结果

我可以从emacs shell运行IRB和rvm.

gem list从emacs shell 运行显示我安装了haml(3.1.2,3.1.1).运行:which rvm, which gem, which haml#all在终端和Emacs中返回相同的路径

当我尝试执行gem(例如haml)时,我得到以下内容:

/Users/me/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:900:in report_activate_error': Could not find RubyGem haml (>= 0) (Gem::LoadError) from /Users/me/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:248:in activate'from /Users/me/.rvm/rubies/ruby- 1.9.2-p180/lib/ruby​​/site_ruby/1.9.1/ruby​​gems.rb:1276:in gem' from /Users/me/.rvm/gems/ruby-1.9.2-p180/bin/haml:18:in '

ruby emacs rubygems rvm

5
推荐指数
1
解决办法
1130
查看次数

标签 统计

cqrs ×1

emacs ×1

nhibernate ×1

orm ×1

ruby ×1

rubygems ×1

rvm ×1