用于MVC3和SOA项目的通用nhibernate数据访问项目

时间:2012-02-13 20:07:15

标签: c# asp.net asp.net-mvc-3 nhibernate fluent-nhibernate

我目前正在开发visual studio中的解决方案,我将在windows azure上部署。该解决方案由MVC3 Web角色组成,其中表示来自SQL Server的数据。 我已经设置了Ninject和Fluent NHibernate来将视图与数据库和具体实现分离。

我现在要做的是将所有数据访问逻辑(即NHibernate和数据访问存储库)放入一个单独的c#项目中,以便我可以将此项目重用于MVC3项目和未来SOA项目。

我有什么想法可以达到这个目的?我想出了如何使用“仅代码”类来实现它,但是在使用hibernate时出现了一些问题。我猜这与为每个Web请求创建的global.asx中的ISession对象有关。

任何有关简单实现,方案或操作方法的提示都会非常有用。如果需要,我也可以发布代码 - 让我详细了解哪些部分; - )

此致 马丁

1 个答案:

答案 0 :(得分:0)

如果我理解正确,我没有看到实现Service类库的问题,该类从UI或SOA层获取请求并执行它们。例如 -

public class UsersService
        {
            private ISession _Session;

            // Session is injected 
            public UsersService(ISession session)
            {
                _Session = session;
            }

            public IEnumerable<User> GetAllUsers()
            {
                return _Session.QueryOver<User>().List();
            }
        }