2013-01-10 3 views
3

내가 작업, 나는 아주 이상한 오류로 실행 한 몇 가지 테스트를하고 있어요 유창 NHibernate에 프로젝트가 :이상한 오류 건물 FluentNH 구성

The entity '<>c__DisplayClass3' doesn't have an Id mapped. Use the Id method to map your identity property. For example: Id(x => x.Id).

보고 관련 기관은 다음과 같습니다

{Name = "<>c__DisplayClass3" FullName = "TPLLCPortal.Domain.Account+<>c__DisplayClass3"}

나는 DisplayClass라는 이름의 클래스가 없지만, 나는 Account 법인을해야합니까. I는 다음과 같습니다 기본 키 규칙을 사용하고 있습니다 :

Account 클래스로 ID를 선언하는 EntityBase 클래스에서 상속
public class PrimaryKeyConvention : IIdConvention 
{ 
    public void Apply(IIdentityInstance instance) 
    { 
     instance.GeneratedBy.GuidComb(); 
    } 
} 

:

/// <summary> 
/// Gets or sets the id. 
/// </summary> 
/// <value>The id.</value> 
public virtual Guid Id { get; protected internal set; } 

내가하고 있어요 확신 해요 규칙을 올바르게 적용하고 컨벤션을 선택하는 경우를 제외하고는 오버라이드를 추가하고 Account 클래스의 ID를 구체적으로 매핑 한 경우를 대비하여 주사위가 없다.

여기에 어떤 아이디어가 있습니까?

나는 NHibernate 3.3.1.4000 (모두 NuGet에서로드 됨)에서 FNH 1.3.0.733을 사용하고 있습니다.

답변

4

내가 알아 낸 것 같습니다. This SO answer에 열쇠가 있습니다. 클래스의 메서드 중 일부는 람다를 사용하기 때문에 컴파일러에서는 에서 제외 할 수있는 클래스를 만들므로 을 ShouldMap 재정의의 일부로 지정합니다.