0
誰能幫我一些想法?下面是我的問題。 假設我有一個名爲A的實體,其字段爲A1,A2,A3和A4,而且我有3個存儲過程,它只從表A返回數據。在Nhibernate填充entites
(注:表A只有4列A1,A2,A3,A4)。
返回A1,A2的第一個存儲過程 第二個存儲過程返回A1,A2,A3 第三個存儲過程單獨返回A1。
對於上述方案做我需要創建三個不同的映射,或者是有什麼解決辦法?如何處理這種情況與單個實體和更低的變化代碼.......
MY場景:
public IList<Userdatasw> Find(string userName)
{
var s = ServiceLocator.Resolve<IeGoatSessionFactory>().OpenSession();
// Executing the stored procedure
IList userList1 = s.CreateSQLQuery("exec dbo.IFSEntry @UserName=:UserName")
.AddScalar("Password", NHibernateUtil.String)
.AddScalar("UserLevel", NHibernateUtil.Int32)
.AddScalar("UserName", NHibernateUtil.String)
.AddScalar("EmployeeId", NHibernateUtil.String)
.AddScalar("SenAccntManager", NHibernateUtil.String)
.AddScalar("updaterequired", NHibernateUtil.String)
.SetParameter("UserName", userName).List();
// Trying to cast anonymous type to Userdatasw
IList<Userdatasw> userdatasw1 = userList1.OfType<Userdatasw>().ToList();
return userdatasw1;
}
在上面的代碼返回類型爲ILIST但我需要將其轉換用代碼更少變化Userdatasw。 我已經看到很多鏈接來解釋Nhiberante中「填充存儲過程的實體」,但是我有20個字段的實體,而上面的SP只返回6個值。
因此,對於每個返回相同類型的SP,我們需要創建單獨映射?
任何想法將不勝感激。
謝謝, Venkatesh。 J