I apalolgize. It was my mistake that I had mis-spelled EntityId. It is all good.
I di dwant to ask about the syntax though. What is with the parenthesis around :keys. In all my previous queries where I specify a bound parameter, I never put parenthesis. Thanks. On Dec 17, 9:18 pm, Waqar Sadiq <[email protected]> wrote: > That worked and I advanced to the nest step. > > After creating the query, I set the bound parameter and then execute > the query. > > IQuery query = session.CreateQuery("delete from MyEntity where > EntityId in (:keys)"); // The type of EntityId is long. > query = query.SetParameterList("keys", keys); // the type of keys is > long[] > int nRows = query.ExecuteUpdate(); > > I get the following error at the ExecuteUpdate(). > > "Can't determine SqlType of parameter name=keys_0_, > expectedType=Unknow > Possible cause: wrong case-sensitive property-name." > > Thanks. > > On Dec 17, 7:34 pm, Diego Mijelshon <[email protected]> wrote: > > > > > where EntityId in (:keys) > > > Diego > > > On Thu, Dec 17, 2009 at 21:35, Waqar Sadiq <[email protected]> wrote: > > > I think I spoke too soon. I get the following error: > > > > NHibernate.Hql.Ast.ANTLR.QuerySyntaxException : Exception of type > > > 'Antlr.Runtime.NoViableAltException' was thrown. near line 1, column > > > 86 [delete from MyNamespace.MyEntity where EntityId in :keys] > > > > I get this on the line > > > > session.CreateQuery("delete from MyEntity where EntityId in :keys"); > > > > Any ideas. > > > > Thanks. > > > > Waqar > > > > On Dec 15, 8:06 am, Waqar Sadiq <[email protected]> wrote: > > > > We are not really mapping associations so the cascade strategy is not > > > > very helpful to me in this particular case. The above discussed query > > > > seems to eb workign for me. > > > > > On Dec 14, 3:46 pm, Jason Meckley <[email protected]> wrote: > > > > > > like Diego said, there isn't really a "best" way. How you go about > > > > > deleting depends on your mappings. the cascade strategy you use will > > > > > greatly influence how you delete data. I have heard of some systems > > > > > that do not require the use of Save or Delete. All inserts and deletes > > > > > are managed by Adding or Removing an object from a collection. > > > > > > On Dec 14, 4:13 pm, Diego Mijelshon <[email protected]> wrote: > > > > > > > I don't know if there's a "best" way, but that query is pretty > > > efficient if > > > > > > you already have the keys. > > > > > > > The usage is: > > > > > > > session.CreateQuery("delete MyEntity where id in :keys") > > > > > > .SetParameterList("keys", keys) > > > > > > .ExecuteUpdate(); > > > > > > > Diego > > > > > > > On Mon, Dec 14, 2009 at 17:53, Waqar Sadiq <[email protected]> > > > wrote: > > > > > > > Hi All, > > > > > > > > I need to delete a bunch of objects that belong to a set. In my > > > case > > > > > > > these objects have primay key of type Int64. I have an array if > > > Int64 > > > > > > > containing the keys of objects that I need to delete. What would > > > be > > > > > > > the best way of deleting them. > > > > > > > > Ideally, I would be able to write a query like this: (Ignoring > > > > > > > transactions) > > > > > > > > Int64[] keys = ...; // an array of primary keys. > > > > > > > > string queryStr = "delete from MyEntity wher MyKey in :keys"; > > > > > > > IQuery query = Session.CreateQuery(queryStr); > > > > > > > query.ExecuteUpdate(); > > > > > > > > Is this the correct way to delete objects from a set? > > > > > > > > Any help would be appreciated. > > > > > > > > -- > > > > > > > > You received this message because you are subscribed to the Google > > > Groups > > > > > > > "nhusers" group. > > > > > > > To post to this group, send email to [email protected]. > > > > > > > To unsubscribe from this group, send email to > > > > > > > [email protected]<nhusers%[email protected]> > > > <nhusers%[email protected]<nhusers%252bunsubscr...@googlegroups.com> > > > > > > > > > > > . > > > > > > > For more options, visit this group at > > > > > > >http://groups.google.com/group/nhusers?hl=en.-Hidequotedtext - > > > > > > - Show quoted text -- Hide quoted text - > > > > > - Show quoted text - > > > > -- > > > > You received this message because you are subscribed to the Google Groups > > > "nhusers" group. > > > To post to this group, send email to [email protected]. > > > To unsubscribe from this group, send email to > > > [email protected]<nhusers%[email protected]> > > > . > > > For more options, visit this group at > > >http://groups.google.com/group/nhusers?hl=en.-Hide quoted text - > > > - Show quoted text -- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
