2010-04-22 4 views
3

저는 유창한 nhibernate를 배우려고 노력하고 있습니다. 그래서 누군가 elses 프레임 워크를 사용하는 대신 처음부터 기본적인 샘플 애플리케이션을 만들고 있습니다. 그러나 매핑 파일을 할당 할 때 실제로 어떤 일이 일어나고 있는지 이해할 수 없다는 것을 알고 있습니다. 나는 같은 코드를 보여주고있는 많은 코드 예제를 보았지만 그 코드는 모두 설명하지 않았다. 작동 원리에 대한 설명이 없습니다. 다음은 자주 보는 코드 예제입니다.유창한 Nhibernate 매핑 구성을 참조하는 "엔티티"는 무엇입니까?

return Fluently.Configure() 
      .Database(config) 
      .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Entity>()) 
      .BuildSessionFactory(); 

그래서 코드 예제에서 Entity는 무엇입니까? 그리고 그 코드 조각은 어떻게 작동합니까?

일부분은 어셈블리의 이름이라고 생각하지만, 내가 사용하고있는 네임 스페이스가 일반적으로 어셈블리의 이름 인 것처럼 보는 것은 컴파일러가 네임 스페이스를 형식으로 사용하고 있다고 불평하는 것입니다.

나는 이것이 중요하다는 것을 느끼고 오히려 어리둥절 해한다.

감사

답변

2

어셈블리에서 추가 유형의 엔티티가 속한 어셈블리의 모든 매핑을 추가합니다. AddFromAssembly이의 라인을 따라 뭔가를 할 것입니다 :

typeof(TEntity).GetType().GetAssembly(); 

이 엔티티는, 그 다음 당신의 매핑의 모든 클래스를 찾기 위해 반사를 사용 속해있는 어셈블리를 얻을 것이다. 많은에서는 조금 ...

을 O)

+0

그래서 엔터티라는 단어를 남겨 두시겠습니까? 아니면 프로젝트에 따라 변경해야합니까? 그렇다면 무엇이 내가 거기에 추가 한 이름을 규정합니까? 나는 근원을보고 내가 알아낼 수있는 것을 보려고 노력할 것이다. 감사. – percent20

+0

엔티티는 매핑이 포함 된 어셈블리의 클래스 이름입니다. – s1mm0t

+0

매핑이있는 엔티티가 둘 이상인 경우 어떻게해야합니까? 또는 매핑을 사용하여 하나의 엔티티에 대해 언급하고 있으며이 둘을 모두 추가 할 것입니까? 실제로 그것에 대해 더 생각하고있었습니다. 매번 데이터베이스에 새로 전화 할 준비가되면 전화 할 것입니다. 그 당시에 엔티티를 추가하지 않으시겠습니까? – percent20

1

s1mm0t 귀하의 질문에 대답했다,하지만 난 그냥에 확장합니다 : 그것을 왜 안 download the source를 내 말을하고 스스로를 살펴보다는 Entity는 매핑되는 클래스에 필요한 Id 속성을 포함하는 간단한 기본 클래스입니다.

매핑하려는 다른 모든 클래스는 Entity에서 상속받을 수 있습니다. 이렇게하면 한 곳에서 ID 유형을 int에서 GUID로 변경하는 등의 작업을 수행 할 수 있습니다.

전체적으로 "유창한 구성"개념으로 어려움을 겪고있는 유일한 사람은 아닙니다 ... -)

내가 대답 간단한 질문을 필요로 할 때 나는 거의 이해 내가 큰 코드베이스에없는 편안한 다이빙 해요 ... 너무 많은 오픈 sourcers이 제안하는 것과

는 달리 여기 주제 조금 떨어져가는하지만, - 적어도 지금까지. 그러나 나는 FNH 프로젝트에 뭔가를 돌려주고 싶다. 그래서, 어떻게 작동하는지 이해하면 위키와 다른 문서를 업데이트하려고합니다. 위키 편집은 매우 쉽습니다. FNH 작성자는이를 이해하는 것처럼 보입니다.

아마도 비슷한 것을 할 수 있을까요?

+0

그건 정말 좋은 생각입니다. 이것에 대한 확장에 감사드립니다. – percent20

관련 문제