2010-06-16 2 views

답변

1

매핑 간단하게 (안전하게 입력) 주로있다. NHibernate의 XML 기반 매핑 형식을 알고 있다면 유창한 NH의 [FluentMappingsContainer].ExportTo([e.g. Environment.CurrentDirectory])을 통해 오류를 추적하는 것이 훨씬 쉽습니다.

편집 : w ASP.NET MVC 예/StructureMap

StructureMap :

Global.asax.cs :

private static void ConfigureSQLiteInMemoryTest(IInitializationExpression init) 
     { 
      init.For<ISessionFactory>() 
       .Singleton() 
       .Use(Fluently.Configure() 
          .Database(SQLiteConfiguration.Standard.InMemory().AdoNetBatchSize(100).ShowSql) 
          .Mappings(m => m.FluentMappings.AddFromAssemblyOf<MyEntity>()) 
          .ExposeConfiguration(config => 
                { 
                 config.SetProperty(NHEnvironment.ProxyFactoryFactoryClass, 
                      typeof(ProxyFactoryFactory).AssemblyQualifiedName); 

                }) 
          .BuildSessionFactory()); 

      init.For<ISession>() 
       .LifecycleIs(GetLifecycle()) 
       .Use(context => 
          { 
           var session = context.GetInstance<ISessionFactory>().OpenSession(); 

           new TestData(session, _nhConfig).Create(); 

           return session; 
          }); 
     } 

이 StructureMap 기반 컨트롤러 공장을 사용하는 MVC에게

protected void Application_Start() 
     { 
      [...] 

      var controllerFactory = new StructureMapControllerFactory(ObjectFactory.Container); 

      ControllerBuilder.Current.SetControllerFactory(controllerFactory); 

      [...] 

     } 

public class StructureMapControllerFactory : DefaultControllerFactory 
    { 
     private readonly IContainer _container; 

     public StructureMapControllerFactory(IContainer container) 
     { 
      _container = container; 
     } 

     protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType) 
     { 
      if (controllerType == null) 
       return null; 

      return (IController)_container.GetInstance(controllerType); 
     } 
    } 
+0

asp.net mvc를 사용하여 유창한 nhibernate를 설정하는 방법을 예제로 제공 할 수 있습니까? –

+0

mysql 데이터베이스 대신 sqllite .. 어떻게해야합니까? –

+0

그럴 수 있습니다. 나는 NH w/SQLite, SQLS, Oracle만을 사용했다. 데이터베이스 (...) 메서드의 매개 변수를 MySql을 정의하는 매개 변수로 변경해보십시오. –

1

는 유창한 NHibernate에 내가 네 말을

+0

asp.net MVC를 사용하여 유창한 nhibernate를 설정하는 방법을 예제로 제공 할 수 있습니까? –

0

자습서 용이 질문에 대한 답변보기

Where can i find a Fluent NHibernate Tutorial?

그것은 당신이 능통 자 NHibernate를 배울 전에 NHibernate에의 이해를 가질 의미가 있습니다. @Jaguar는 그것이 nhibernate의 꼭대기에 앉아 있다고 말한다.

다음 버전에 포함될 예정이지만 nhlambdaextensions.googlecode.com을 살펴볼 가치가 있습니다.

NHibernate에 자습서 dimecasts 또는 tekpub 체크 아웃을 위해 - nhibernate.info 또는 - NHibernate에 데이터베이스 불가지론

Learning NHibernate

질문을 참조하십시오. :)

2

NHibernate를 배우려면 절대적으로이 필요합니다. 유창한 NHibernate는 NHibernate의 매핑 API에 대한 래퍼 일 뿐이며, 매핑은 NHibernate를 사용하는 작은 부분 일뿐입니다.

쿼리 (Criteria/HQL/LINQ), 세션, 잠금, 지연/열망 로딩 등은 NHibernate와 작업 할 때 알아야하며 Fluent NHibernate와 아무 관련이없는 개념입니다.

1

예!

적어도 NHibernate의 기본을 이해하지 못한다면 완전히 손실 될 것입니다. NHibernate는 복잡한 도구이고 유창한 NHibernate는 단지 더 편리하게 작업 할 뿐이다 - 복잡성을 숨기지 않는다.

관련 문제