CQS体系结构模式背后的原理是将查询和命令分成不同的路径.理想情况下,您的持久性存储可以进行读/写分区,但在我的情况下,有一个规范化的数据库.
如果您使用的是ORM(在我的情况下是NHibernate),很明显在发出命令时会使用ORM.但是,在为用户屏幕设置数据(DTO)时需要运行的各种查询怎么样呢?在执行CQS的查询端时,通常会抛弃ORM吗?
我应该在哪里实现我的查询和DTO预测?直接ADO.NET(datareaders,dtos,datatables,stored procs)?有些查询非常独特,需要很多连接来将所有内容组合在一起.我不想为查询反规范化数据库,但我可以创建视图(穷人的非规范化).
我的emacs shell无法加载任何已安装的ruby gem.我在尝试从emacs执行任何已安装的gem时遇到Gem :: LoadError,但它可以从Terminal工作.以下是我在环境中审核的所有信息.谢谢你的帮助!
从终端(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/rubygems.rb:1276:ingem' from /Users/me/.rvm/gems/ruby-1.9.2-p180/bin/haml:18:in
'