문제

S#ARP 아키텍처를 기반으로 웹 앱을 작동 시키려고합니다. 현재 나는 내 엔티티의 아래 코드가 있습니다.

[Serializable]
public abstract class EventBase : Entity
{
    #region Properties

    [DomainSignature]
    public virtual string Name { get; set; }

    public virtual string Description { get; set; }

    public virtual AgeRange Ages { get; set; }

    public virtual int Rating { get; set; }

    public virtual decimal Price { get; set; }

    public virtual string PhoneNumber { get; set; }

    public virtual string EmailAddress { get; set; }

    public virtual string Website { get; set; }

    public virtual EventState State { get; set; }

    #endregion

    protected EventBase() {}

    protected EventBase(string name, string description)
    {
        // ReSharper disable DoNotCallOverridableMethodsInConstructor
        Name = name;
        Description = description;
        Price = 0;
        State = EventState.New;
        // ReSharper restore DoNotCallOverridableMethodsInConstructor
    }
}

이것은 다음과 같이 Fluent nhibernate를 사용하여 매핑됩니다

public class EventBaseMap : AutoMap<EventBase>
{
    public EventBaseMap()
    {
        Id(x => x.ID).WithUnsavedValue(-1).GeneratedBy.Identity();

        Component<AgeRange>(x => x.Ages, m =>
         {
             m.Map(x => x.From).TheColumnNameIs("AgeFrom");
             m.Map(x => x.To).TheColumnNameIs("AgeTo");
         });

        JoinedSubClass<Music>("EventId", sub =>
         {
             sub.Map(x => x.Headliner);
         });
    }
}

매우 유용한 S#ARP 기본 저장소 클래스를 사용하여 매우 간단한 저장소를 만들었습니다.

public interface IEventRepository : INHibernateRepositoryWithTypedId<EventBase, int>
{
    List<EventBase> FindByName(string searchPhase);
}
public class EventRepository : NHibernateRepository<EventBase>, IEventRepository
{
    public List<EventBase> FindByName(string searchPhase)
    {
        return Session.Linq<EventBase>().Where(x => x.Name == searchPhase).ToList();
    }
}

DB에서 엔티티를 만들고 모든 레코드를 반환 할 수 있습니다. FindByName 메소드를 테스트하려고하면 아래 오류가 발생합니다.

nhibernate.queryexception : 속성을 해결할 수 없음 : 이름의 이름 : model.events.eventbase

아무도 아이디어가 있습니까? 내지도에 문제가 있습니까?

감사,

도움이 되었습니까?

해결책

이것은 자동 매핑 기능을 사용합니다. 재정의하고 싶은 속성 만 명시 적으로 맵핑하거나 컨벤션을 충족하지 않는다고 생각 했습니까?

명시적인 매핑을 추가하면 문제가 해결되지만 그 이유는 확실하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top