2009-01-31 71 views
1

我正在嘗試基於S#arp架構獲得一個Web應用程序。目前我有一個下面的代碼爲我的實體。流利Nhibernate&Linq(未找到物業)

[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 
    } 
} 

這是使用功能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); 
     }); 
    } 
} 

我使用了非常有用的小號#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(); 
    } 
} 

我可以在數據庫中創建實體並返回所有記錄。當我嘗試測試FindByName方法時,出現以下錯誤。

NHibernate.QueryException:不能 resolve屬性:名稱: Model.Events.EventBase

有沒有人有什麼想法?這是我的映射問題嗎?

謝謝,

回答

1

這是使用自動映射功能。我以爲你只是明確地映射你想覆蓋的屬性或不符合約定的屬性?

如果我添加一個明確的映射,這解決了這個問題,但我仍然不知道爲什麼。

+1

後來我注意到了,這就是我刪除帖子的原因。抱歉。 – gcores 2009-01-31 23:29:34