请教 FindOne 方法获取数据的方式

Jun 10, 2010 at 2:42 AM

不太明白使用FindOne方法,它是先取得所有数据后再返回指定的一条数据还是直接从数据库中获取指定的一条数据?

现在只想从数据库中获取指定的一条数据,是用 FindOne 还是其他方法?

Jun 10, 2010 at 7:14 AM
Edited Jun 10, 2010 at 7:15 AM

find one 不过就是DbEntry.From<>.Where.Order.Range(1,1).Select().FirstOrDefalut()的简化的static方法而已

Jun 10, 2010 at 7:19 AM

那 DbEntry.From<>.Where.Order.Range(1,1).Select() 是从数据库中取多条还是一条?

Coordinator
Jun 10, 2010 at 8:38 AM
FindOne有两个重载的方法,需要提供OrderBy的那个,从数据库取一条数据,不需要提供OrderBy的那个,从数据库取多条数据。 理论上来说,你提供的条件应该使结果具有唯一性,这样,不论使用哪个函数,都是取一条。
Jun 10, 2010 at 8:45 AM
Edited Jun 10, 2010 at 8:46 AM

还有点不太明白,我想弄明白使用FindOne方法的时候,程序是先从数据库里返回所有的数据,然后通过计算条件在返回符合条件的数据实体,还是程序是从数据库里取得指定条件的数据然后包装成数据实体返回?(前提是传入了结果具有唯一性的条件)

Coordinator
Jun 10, 2010 at 11:02 AM
Edited Jun 10, 2010 at 11:03 AM
。。。。。。怎么可能先从数据库里返回所有数据?
当然是生成指定条件的SQL,并返回这条SQL应该返回的结果集。
但是,用户给的条件,有可能不能返回唯一的结果,比如结果是4条,这时,数据库返回4条记录,FindOne返回其中的第一条。
以后有这样的疑问,请使用DbEntry的Logger系统,直接查看DbEntry生成的SQL语句。
Jun 10, 2010 at 11:10 AM

明白了。忘记了还有一个Logger,迟钝啊~~