2011-01-07 8 views
7

좋아, 나는 모든 설정이 올바르다 고 생각한다. 이제 데이터베이스에서 일부 데이터를 선택하는 질의를하려고한다. 지금은 어떤 내가 비록 기본 지원 LINQ에 의해 NHibernate에 3.0를 사용하고 (또는 링크의 적어도 좋은 부분. 지금은 찾을 모든 LINQ 예제에서는이 코드Hibernate와 함께 LINQ 사용하기

session.Linq<User>() 

을 가지고 있지만 나는 내 인생은 찾을 수 없습니다에 대한 어떻게 또는 어디서 세션이 설정되고 있는지 알 수 있습니다 .3.0에서 수행하는 것이 적절한 이유인가요? 그렇다면 세션을 설정하는 방법 (필요한 용도, 클래스, 메서드 등)은 무엇입니까? NHibernate에 3.0 LINQ를 사용하는 방법

UPDATE : 이제

나는 다음과 같은 코드가 있습니다

,369을
var configuration = new Configuration(); 
configuration.Configure(); 
configuration.AddAssembly(typeof(Tag).Assembly); 
var sessionFactory = configuration.BuildSessionFactory(); 
var session = sessionFactory.GetCurrentSession(); 

하지만 NHibernate.ISession에 Linq에 대한 정의가 없다는 컴파일러 오류가 발생합니다. 나는 따르는 것을 사용한다 :

using System.Collections.Generic; 
using System.Web.Mvc; 
using MyProject.Models; 
using MyProject.ViewModels.Desktop; 
using NHibernate.Cfg; 

나는 무엇인가 놓치고 있습니까?

+1

나는 그것이'session.Query (믿습니다)' NHibernate 3에서 LINQ 제공자가 코어 어셈블리로 가져옴 –

+0

NHibernate 위키는 훌륭한 리소스입니다. 시작하기 - http://nhforge.org/wikis/howtonh/your-first-nhibernate-based-application.aspx –

답변

8

당신은 네임 스페이스를 가져와야 : 또한

using NHibernate.Linq; 

을, 지금의 :

session.Query<TEntity>(); 

대신 :

// Deprecated 
session.Linq<TEntity>(); 
+0

예, NHibernate 3 대신 .Query 대신 .Query를 사용해야한다는 것을 알았습니다. 감사합니다. – ryanzec

2

NHibernate SessionFactory.CreateSession() 메서드에서 세션을 가져옵니다. 일단 가지고 있다면, HQL 쿼리, NH 쿼리 API 또는 LINQ를 사용하여 데이터에 액세스 할 수 있습니다.

관련 문제