0

問題是我的MVC應用程序與我的數據庫很好地連接,但是當我查詢它時,它不返回任何東西(「var model」爲空),我不知道什麼是問題。我使用的是SharpLite模板,因此它已經實現了automappings,並且正在使用NHibernate連接到我的數據庫,我已經在「MyProject.Domain」中實現了「User」實體。以下是我的用戶控制器中的代碼:使用SharpLite從PostgreSQL數據庫檢索數據

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; 
    } 

回答

0

您將希望看到發送到數據庫的語句以及結果。 嘗試以下方法之一:

  • 我發現使用NHibernate Profiler最簡單的方法。這是一種付費產品。
  • 設置NHibernate使用log4net來記錄SQL語句。
  • 自定義開關,跟蹤,調試,或其他任何地方,你想用an interceptor

我不知道有足夠的瞭解,以目前查明錯誤的問題。

+0

我會測試它以後給你一些反饋,謝謝。 – Daniel 2012-03-05 16:59:15

0

確認您User實體繼承Entity