使用SharpLite从PostgreSQL数据库中检索数据

时间:2012-03-05 16:37:22

标签: asp.net-mvc asp.net-mvc-3 model-view-controller nhibernate nhibernate-mapping

问题是我的MVC应用程序与我的数据库连接良好但是当我查询它时它没有返回任何内容(" var model"是空的)并且我不知道问题是什么。我使用SharpLite模板已经实现了自动化并使用NHibernate连接到我的数据库,我已经实现了#34;用户"实体在" MyProject.Domain"。这是我的用户控制器中的代码:

private readonly IRepository<User> _repository; 
    public UserController(IRepository<User> repository)
    {
        _repository = repository;
    }
public ActionResult Index()
    {
        var model = _repository.GetAll();
        return View(model);
    }

这是来自NHibernate初始化程序的代码:

public static Configuration Initialize() 
    {
        var configuration = new Configuration();

        configuration
            .Proxy(p => p.ProxyFactoryFactory<DefaultProxyFactoryFactory>())
            .DataBaseIntegration(db => {
                db.ConnectionStringName = "MyProjectConnectionString";
                db.Dialect<PostgreSQL82Dialect>();
            })
            .AddAssembly(typeof(ActionConfirmation<>).Assembly)
            .CurrentSessionContext<LazySessionContext>();

        var mapper = new ConventionModelMapper();
        mapper.WithConventions(configuration);

        return configuration;
    }

2 个答案:

答案 0 :(得分:0)

您需要查看发送到数据库的语句以及结果。 尝试以下方法之一:

  • 我发现最简单的方法是使用NHibernate Profiler。这是一种付费产品。
  • 使用log4net安装NHibernate来记录SQL语句。
  • 使用an interceptor
  • 自定义输出到Trace,Debug或其他任何您想要的地方

我目前还没有足够的知识来确定错误。

答案 1 :(得分:0)

验证您的User实体是否继承Entity