0
我有一個主表PURCHASE BILL MASTER
和一個子表PURCHASE BILL DETAILS
。 我在子表中寫的IMPL得到數據如下:Nhibernate多對一映射返回重複值
public IList<PurchaseBillDetails> GetDetailsByInvDate(string FrmDate, string ToDate, int ShopId, int DeptId, int DrugId)
{
ICriteria Query = SessionFactory
.GetCurrentSession()
.CreateCriteria(typeof(PurchaseBillDetails))
.CreateAlias("PurchaseBillMaster", "PBM");
if (FrmDate != string.Empty && FrmDate != null)
{
Query.Add(Restrictions.Gt("PBM.InvoiceDate", Convert.ToDateTime(FrmDate)));
}
if (ToDate != string.Empty && ToDate != null)
{
Query.Add(Restrictions.Lt("PBM.InvoiceDate", Convert.ToDateTime(ToDate)));
}
if (ShopId != 0)
{
Query.Add(Restrictions.Like("PBM.ShopNo", ShopId));
}
if (DeptId != 0)
{
Query.Add(Restrictions.Eq("PBM.DeptId", DeptId));
}
if (DrugId != 0)
{
Query.Add(Restrictions.Like("DrugId", DrugId));
}
Query.Add(Restrictions.Eq("HospitalId", Convert.ToInt32(HttpContext.Current.Session["HospitalId"])));
//Query.AddOrder(Order.Desc("BillDate"));
IList<PurchaseBillDetails> list = Query.List<PurchaseBillDetails>();
return list;
}
我寫了一個這樣的映射:
<many-to-one name="PurchaseBillMaster" class="Validus.Pharmacy.Domain.PurchaseBillMaster, HIS.Pharmacy" column="PURCHASE_BILL_ID" insert="false" update="false"></many-to-one>
,但問題是它返回的重複值一次在物理表中,在給定的日期中有3行,但是impl給出了33,因爲每一行重複了很多次。
如何獲得獨特的行。請幫助。
在此先感謝。
嗨,感謝您的回覆,我的多對一關係船如下: <多對一的名稱=「PurchaseBillMaster」class =「Validus.Pharmacy.Domain.PurchaseBillMaster,HIS.Pharmacy」column =「 PURCHASE_BILL_ID「insert =」false「update =」false「> many-to-one> –
但是,您的班級中是否包含一個清單或一組清單? –