nHibernate выбрать запрос? - PullRequest
0 голосов
/ 16 марта 2009

У меня есть заявление ado.net, которое я хочу преобразовать в NHibernate:

Dim sql As New StringBuilder()
sql.AppendLine("SELECT r.RoleId,  r.RoleName ")
sql.AppendLine("FROM dbo.aspnet_Roles r ")
sql.AppendLine("WHERE r.RoleId IN ")
sql.AppendLine(" (select roleID from dbo.MenuRole where menuId = @MenuId) ")
sql.AppendLine("Order By r.RoleName")

позже, я заполняю параметр: cmd.Parameters.AddWithValue ("@ MenuId", menuId)

Учитывая, что я хочу вернуть: IList (Of AspnetRole)

и я использую:

Dim managerFactory As IManagerFactory = New ManagerFactory()
Dim roleManager As IAspnetRoleManager = managerFactory.GetAspnetRoleManager()

Как мне построить и использовать этот запрос с nHiberate?

(P.S. Я использую Codesmithtools и VB.net, а также VS2008 и SQL Server 2008)

1 Ответ

1 голос
/ 17 марта 2009

Во-первых, вам нужно сопоставить таблицу aspnet_roles и таблицу MenuRole с их соответствующими классами. После того как вы отобразите их, я также сопоставлю свойство MenuRole многие-к-одному с классом AspnetRole.

Как только вы закончите, запрос критериев должен выглядеть примерно так:

Dim c As ICriteria = Session.CreateCriteria(TypeOf(AspnetRole))
c.Add(Restrictions.Eq("Menu.Id", menuId)
return c.List(Of AspnetRole)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...