我的第一个真正的(非测试) NHibernate/Castle.ActiveRecord项目正在快速开发。我现在使用NHibernate/Castle.ActiveRecord大约一个月,但仍然不知道如何在我的WindowsForms应用程序中处理会话。
常见的处理方法seam不适合我:
)。
我使用谷歌和必应已经好几个小时了,也读了很多书,但我只找到了一个关于我的案例的好网站:http://msdn.microsoft.com/en-us/magazine/ee819139.aspx。在那里使用SessionPerPresenter,但是对于“子演示者”,它只给出id,而不是整个对象!而且,这个例子中没有预见键,也没有场景对象被返回给“超级演示者”。
Qestions
windowsforms/desktop-application?
示例
我正试着以一个例子来掩盖我的大部分问题。
// The persisten classes
public class Box
{
public virtual int BoxId{get;set;}
public virtual Product Content{get;set;}
...
}
public class User
{
public virtual int UserId{get;set;}
public virtual IList<Product> AssigenedProducts{get;set;}
...
}
public clas Product
{
public virtual int ProductId{get;set;}
public virtual string PrductCode{get;set;}
}。
// The presenter-classes
public class ProductSearchPresenter : SearchPresenter<Product> { ... }
public class ProductEditPresenter : EditPresenter<Product> { ... }
public class UserSearchPresenter : SearchPresenter<User> { ... }
public class UserEditPresenter : EditPresenter<User> { ... }
public class BoxSearchPresenter : SearchPresenter<Box> { ... }
public class BoxEditPresenter : EditPresenter<Box> { ... }
// The search-presenters allow the user to perform as search with criterias on the class defined as generic argument and to select one of the results
// The edit-presenters allow to edit a new or loaded (and given as parameter) object of the class defined as generic argument现在我有了以下用例,所有这些都可以同时在同一个应用程序中执行(只需在演示者之间切换)。
使用BoxSearchPresenter-instance实例搜索和选择对象
使用一个UserSearchPresenter
中的对象
的一部分是使用ProductEditPresenter实例来编辑和保存选定的
这只是一小部分用例,但我有很多问题。
在同一个ui-thread.
。
发布于 2012-01-13 19:12:34
下面是我发现最适合我们的WinForms应用程序体系结构(基于MVP)的一个简短的视图。
每个演示者都是依赖于它所需要的存储库的构造函数,例如,如果您有InvoicePresenter,那么您就有InvoiceRepository作为依赖项,但是您可能会有CustomerRepository和其他许多依赖于复杂性的构造器(如果您想要更改发票的客户,那么就可以使用CustomerRepsitory将所有客户加载到combobox )。
然后,每个存储库都有一个用于UnitOfWork的构建器参数。您可以使用UnitOfWork模式抽象会话,也可以让您的报告依赖于ISession。
所有东西都由IoC容器连接在一起,在这里我们创建基于“上下文”的表演者。这是一个非常简单的概念,上下文是每个演示者和所有子演示者,这反过来我们创建为更复杂的演示者的复合块,以减少肤色(例如,如果您有多个选项标签来编辑某个实体或其他东西)。
因此,在实践中,这个上下文是基于90%的时间表单,因为一个表单至少是一个演示者/视图。
因此,要回答你的问题:
每个演讲者的
https://stackoverflow.com/questions/8739457
复制相似问题