0
我正在使用流利NHibernate映射實體,並有問題獲取存儲庫以提供結果集。在控制檯中,SQL不會顯示,但其他存儲庫會這樣做。我有一種感覺,這是因爲映射,但不能說明原因。表名包含一個下劃線,這是該回購與其他回購之間唯一區別之一。我的問題是什麼可能導致sql不被執行?NHibernate不會執行SQL的原因是什麼?
這是我的設置。
實體:
public class Org
{
public virtual int ID { get; set; }
public virtual string IndividualName { get; set; }
public virtual string GroupName { get; set; }
public virtual string AddressLine1 { get; set; }
public virtual string AddressLine2 { get; set; }
}
映射:
public class OrgMap : ClassMap<Org>
{
public OrgMap()
{
Table(@"Org_Updates"); // Also tried Table("Org_Updates");
Map(x => x.ID);
Map(x => x.IndividualName);
Map(x => x.GroupName);
Map(x => x.AddressLine1, "PhysicalLocationAddress");
Map(x => x.AddressLine2, "PLAddr2");
存儲庫:
public class OrgRepository : RepositoryBase<Org>, IOrgRepository
{
public IList<Org>GetTop50()
{
var query = All().AsList();
return query;
}
}
RepositoryBase:
public class OrgRepositoryBase<T> : RepositoryBase<T> where T : class
{
public OrgRepositoryBase()
{
var registry = ServiceLocator.Current.GetInstance<EventListenerRegistry>();
registry.RegisterListenerForType<T>(GetType(), EventType.Save);
registry.RegisterListenerForType<T>(GetType(), EventType.Delete);
}
protected override ISession GetSession()
{
return UnitOfWork.Current.GetSessionFromContext<ISession>(typeof (OrgModel));
}
protected override Type ModelType
{
get { return typeof (OrgModel); }
}
}
}
正如我之前所說,使用其他entites/mapping工作的其他存儲庫。我可以使用這個存儲庫,交換它實現的實體/映射,它將工作。我很確定這是因爲hte映射,但不能分辨哪個部分。我檢查了表名和列名。
感謝您的幫助
如果是因爲我想你會得到一個錯誤的映射...... – dotjoe 2010-12-07 17:36:05
是否有任何生成的SQL? – 2010-12-08 05:53:49