0

我从头开始设计一个应用程序。我这样做是为了让我的编码技能越来越好。在这个应用程序中,我有两个实体:

  • 国家
  • 城市

添加一个国家并不难。我在业务层 CountryService 中传递视图模型,将其转换为实体并将其持久化。

其次,我需要添加一个城市。为此,我有一个具有 CountryId 和城市字段的视图模型。我将视图模型传递给 CityService。在那里我需要做几件事。我需要检索正确的国家实体,将城市数据转换为城市对象,将城市对象添加到国家或将国家添加到城市(通过 Nhibernate 建议的 AddXXX 方法)。然后我需要通过城市存储库将城市与国家/地区一起保存,或者通过国家/地区服务将国家与城市一起保存,然后在国家/地区存储库中。

考虑到每个方法有 1 个功能,我有点迷失了如何构建这种功能。

4

1 回答 1

2

与其在城市服务中检索国家,不如直接传入CountryId城市服务方法并使用:-

var city = new City 
{
  Name = "London",
  country = session.Load<Country>(countryId)
};
session.save(city);

这不会命中数据库并实际返回记录,它只是允许您设置外键。

也就是说,另一种方法是在您的 MVC 项目中采用 Nhibernate 并公开会话,而不是将其完全抽象掉。这种思路正在蓄势待发。

于 2013-06-19T06:14:35.033 回答