Use the HQL "select p.Id from Person p" to have nhibernate translate to your current SQL dialect.
Also, you can hardly display 200000 rows on the screen at a time. Are you sure it's a good idea to load even all the identifiers? Do the user really want to scroll through all that instead of using a search function of some sort? As Fabio says, NHibernate isn't optimized for the case when you really must fetch a lot of data at a time. /Oskar 2010/1/26 Fabio Maulo <[email protected]>: > The best way to work with 200K data-record is not using NH. > If you need to upload 200K data in a winForm, please, use something else > than NH. > Thanks. > > 2010/1/25 ehnn <[email protected]> >> >> Hello all, >> >> I've just started using nhibernate and fluent nhiberate (so far about >> 24 hours). I've created the static session factory class (following >> many examples found on blogs etc) and have done the following in a >> winform's constructor to store 200,000 rows into a table (I need to do >> this to simulate the size of the datasets I will be dealing with): >> >> int i = 0; >> var s = SessionFactory.GetSession(); >> using (var tx = s.BeginTransaction()) >> { >> while (i < 200000) >> { >> var p = new Person { FullName = i.ToString() }; >> s.Save(p); >> i++; >> } >> tx.Commit(); >> } >> >> This executes fine against the backend mssql, populating the person >> table with 200,000 rows. (Simple columns in table/entity, eg. >> FullName, Email, Address etc). >> >> If I now do this in another form constructor: >> >> var l = SessionFactory.GetSession().CreateCriteria<Person>().List(); >> >> ... This takes about 20 seconds to get all the objects back. (I then >> bind this list to a bindingnavigator / bindingsource on a form.) >> >> Ideally, I want to be able to just get back a list of ID's, e.g.... >> var q = session.CreateSQLQuery("SELECT Id FROM Person") >> ... bind this up to the bindingnavigator, and then get each entity as >> I move back / forward through the list so that the whole process is >> faster. >> >> What is the *best* or *recommended* way to go about this? >> >> Please excuse my ignorance if I am missing something obvious, I am new >> to nhibernate, however I have searching posts / blogs and do not know >> the answer. >> >> Thanks in advance for any help. >> >> >> public class Person >> { >> public virtual int Id { get; protected set; } >> public virtual string FullName { get; set; } >> public virtual string KnownAs { get; set; } >> public virtual string Title { get; set; } >> } >> >> >> >> >> -- >> 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. >> > > > > -- > Fabio Maulo > > -- > 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. > -- 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.
