几天前,我阅读了关于GenericRepository和Unit Of Work模式的教程http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-the-repository-and-unit-of -work-patterns-in-an-asp-net-mvc-application.我使用Web表单,我安装了EntityFramework CTP4包.(我不能使用EF 5).
我想为我的项目编写通用存储库代码,但我被困在这一行:
this.dbSet = context.Set<TEntity>();
Run Code Online (Sandbox Code Playgroud)
我知道这行不起作用,因为在我的项目和数据库中首先使用ObjectContext.我怎么处理它?我可以编写通用存储库而无需先迁移到代码(在我的情况下这不是一个选项)吗?
我想在我的项目中使用CQRS模式的元素.我想知道我是否使用Command and Events做得对.我不确定的是事件是否可以调用命令.为了更好地展示我想做什么,我将使用图表和示例.
这是一个例子:
用户调用TripCreateCommand.TripCreateCommandHandler完成他的工作,并在成功发布TripCreatedEvent之后.
现在我们有两个TripCreatedEvent监听器(监听器执行顺序无关紧要)
第一个监听器(可以在第二个监听器之后执行):
对于trip.author.friends中的每个用户调用两个命令(命令的顺序很重要)
第二个监听器(可以在第一个监听器之前执行):
这是示例图:
这是一个好方法吗?EventListener可以调用Command,或者我应该以其他方式执行它吗?