May 2017
M T W T F S S
« May    
1234567
891011121314
15161718192021
22232425262728
293031  

Archives

Meta

Recent Posts

Tags

asp .net asp .net membership browsers computer crash Guy Burstein javascript link-o-rama LINQ office 2007 optimization outlook 2007 performance ScottGu SQL Server t-sql web servers workarounds xmlhttprequest

« Maintenance Plans/Backup Jobs in SQL Server | Main | “The file is too large for the destination file system.” …say what? »

LINQ, Stored Procedures and Multiple Recordsets: How-To

By juliana | June 7, 2008

Okay, here’s my entire test-run of how to get LINQ to work with stored procedures that return multiple recordsets just a dummy project.


Here’s a multiple recordset-returning stored procedure. My first recordset returns a three columns, single row of overview data, and my second recordset returns the list/breakdown.

CREATE PROCEDURE spGetBookList
AS
BEGIN

-- first recordset - overview of the list
SELECT count(*) as totalbooks,
sum(pages) as totalpages,
sum(price) as totalprice
from book_list

– second recordset – the book list
select id, title, author, pages, price, published_date
from book_list
END
GO

I want to use this through LINQ, so first, I’ve got to add it to the LINQ dbml file.

1. Drag and drop in the designer as usual.
The stored procedure will appear on the stored procedure list.

The designer generates two things automatically whenever you drag a stored procedure. The function that you can use (in your coding) to call this stored procedure , and then the class that represents the data.

You can see this if you take a look at the .vb bile of the dbml file (expand the + sign on the dbml and double-click on the .vb file.).

And scroll down ’til you see a function that’s similar in name to the stored procedure you added.

Note:

  1. Public Function spGetBookList()
  2. Class spGetBookListResult

As far as I can tell, this is what always happens when we drag a stored procedure to the designer. A function with the same name as the stored procedure will be created, and a class representing our recordset. Even though our stored procedure here returns two recordsets, the designer is only capable of detecting and designing one recordset result.

Here’s where I guess we have to go in and tweak it so that this function returns TWO recordset.

2. Create a new class.
This class is going to contain the data classes that’ll represent the multiple recordsets in our stored procedure.

At first I created these classes INSIDE the DBML’s .vb file, but I discovered I would lose all my tweaks/changes whenever I refreshed the DBML designer (e.g. adding a new table/stored procedure), since it generates that file automatically.

This is a pain here, but an important one: everytime the DBML is changed, it re-generates. That means, that some of the steps here will have to be re-done every time. More on that later. For now, though, this class will help reduce the number of steps that’ll have to be re-done.

3. Move the partial class to the new class

3a. Insert Imports System.Data.Linq.Mapping to class

3b. Cut and paste the partial public class spGetBookListResult from the .vb and paste into this new class.

4. Create another partial class for the second recordset
Basically this class has all the properties that’ll represent all the columns in the second recordset. Since my second statement was

select id, title, author, pages, price, published_date
from book_list

My class had to have properties id (integer), title (string), author (string), pages (integer), price (decimal), published_date (datetime). Basically, you can pretty much copied the same format as the first recordset’s partial class and do something like this:

CHEAT: To be honest, I don’t create most of my second-onwards recordset classes manually. What I do is I create a dummy stored procedure and put the single select statement into the stored procedure, drag it to the DBML, open the .vb, and tada, “steal” the auto-generated class for that select statement and put it in my own data class. And then I repeat as necessary, and when I’m done, I delete my dummy stored procedure from the DBML.

Remember the name of this class!

5. Go back to the DBML .vb, find the function, and tweak it so that it returns the multiple recordset instead of one.
To do this, you need to change this

to this

Basically, the changes are:

  1. Replace the As ISingleResult(Of <whateverclass) with IMultipleResults
  2. Replace the function code with the one above Dim result …. Return Ctype(result.Returnvalue,IMultipleResults)
  3. Add the ResultType attributes in order, with the GetType value referring to the class you just created to represent each recordset.

6. Copy this entire function, paste into the data class, and comment out. JUST FOR REFERENCE.

ANNNNNND, we’re done!

Oh, except on how to actually CALL this thing. Which would be something like this:

The results variable basically holds all the multiple recordsets. To access each one, you need to call the GetResult (in order), which is sort of like NextRecordset in good ol’ ASP. The Of <your recordset class> allows you to do all those nice .<fieldname> intellisense and such.

I had to convert the results to ToList in order to iterate back and forth, but this may or may not be necessary in your case. Try with and without, YMMV.

Oh, one more thing…
Remember I said whenever you made a change to the DBML designer, the whole designer’s vb file gets regenerated? The IMultiple result function will ALSO disappear to be replaced by a single result one (and its data class). That’s where the copied Imultiple function in your own data class comes in handy. Just copy and replace and all will be well again.

AND FIIIIINALLY…
I get the feeling this is a bit hack-ish, especially the part where we’re going into the designer –that’s auto-generated– and then tweaking. Not sure if that’s the official proper way to do it… I look forward to the day when the designer will be a little bit more intuitive, generating the IMultiple result function and necessary classes itself. I would also love it if the designer could automatically REFRESH. (Ever notice that when you change a stored procedure after dragging it into the designer, you’ve got to remove and re-add?)

The End.

Click on pen to Use a Highlighter on this page

Topics: I Canz Code! | 95 Comments »

95 Responses to “LINQ, Stored Procedures and Multiple Recordsets: How-To”

  1. LINQ, Stored Procedures and Multiple Recordsets | two geeks… Says:
    June 7th, 2008 at 9:03 pm

    [...] LINQ, Stored Procedures and Multiple Recordsets: How-To [...]

  2. Philip Says:
    June 8th, 2008 at 7:05 pm

    Great job. I, too, would like to see these changes in the next version of the designer. Until then, I think your method is the way to go.

  3. Suba Says:
    July 7th, 2008 at 11:01 pm

    Hi there

    I tried the example. I am facing a problem. Suppose am returning 2 record sets from the SP in the order First Country and second State. When i have to access State its not returning me the values properly. When i debugged i found out that the order of the method call is important. To get the state list i have to call Country first and then call State. Other wise its not filling my State list.

    For some reason the order is causing the problem. Have you encountered anything like this. Any idea why this is happening?

  4. Alex Says:
    July 29th, 2008 at 1:59 am

    Great Job, just a question….

    It’s the same with “If statements” ???

    CREATE PROCEDURE spGetBookList
    AS
    BEGIN
    – first recordset – overview of the list
    if(miguelito > 1)
    begin
    SELECT count(*) as totalbooks,
    sum(pages) as totalpages,
    sum(price) as totalprice
    from book_list
    end
    else
    – second recordset – the book list
    select id, title, author, pages, price, published_date
    from book_list
    end
    END
    GO

    Note: Miguelito its a var…. :P

  5. juliana Says:
    September 5th, 2008 at 10:20 pm

    @Suba, I’m not very sure, but I believe it works like the old ASP .NextRecordset, where the results are returned sequentially.

    For instance, your stored procedure returns results from Country first, and then State.

    I don’t think you can call your results
    .GetResult(Of State)
    .GetResult(Of Country)

    The first .GetResult will retrieve the first results (e.g. Country), but is trying to put it into your State class.. which probably won’t work.

    I suggest that you grab all your results in order first (and store them in a variable), and then you can access them in whatever order you need.

  6. juliana Says:
    September 5th, 2008 at 10:28 pm

    @Alex, yes it will work for IF statements, too. But you will need to know before you call your stored procedure, which result type you will get. And then based on that knowledge, you put in your result type when calling GetResult.

    For instance, if your miguelito var is outside in your code then you can have something like this:

    dim miguelito as integer = 1
    dim result as IMultipleResult = myLinq.spGetBookList(miguelito)

    if miguelito > 1 then
    dim overview= result.getResult(Of StatsClass)().ToList
    else
    dim booklist = result.getResult(of BookListClass)().ToList
    end if

  7. joseph jelasker Fernando Says:
    June 23rd, 2009 at 3:59 pm

    one of the best code snippets.It gives the clear understanding of what is going around in Linq.
    Thanks a lot

  8. joseph jelasker Fernando Says:
    June 23rd, 2009 at 5:15 pm

    Thanks juliana for commenting on if statement in this issue.but my problem is that if have stored procedure like

    Create Procedure dbo.uspStudentFetch
    (
    @id int
    )
    as
    Begin
    if(@id=1)
    Begin
    select * from tblStudent1
    End
    else
    Begin
    select * from tblStudent2
    End
    End

    Here in this case do i need to specify 2 result types or only one.if one which one to be specified.however only one datatable would be return.

    The aforementioned tables(student1 and student2) are having different fields.so do i need to have two partial classes associated with the aforementioned tables with different tables, Even though only one table is return dynamically.

    Thanks in advance
    joseph jelasker fernando

  9. juliana Says:
    June 24th, 2009 at 12:03 pm

    @joseph,

    Thanks for the comment! For your scenario, you are still getting a multiple type of results, if only just one of the two at any one time. I notice that you’re selecting directly from a table — did you know tables already ahve their own result types, so that you don’t really have to declare them?

    You will still need to do step 5:
    1. change the function and tweak it so that it returns multiple results, ResultType(GetType(tblStudent1)) and ResultType(GetType(tblStudent2) .

    But when you call, depending on your variable, you will only GetResult(Of [whateverTable]).

    Go check out Scott Gu’s article on “Handling Multiple Result Shapes from SPROCs” (just search for that header in the article): http://weblogs.asp.net/scottgu/archive/2007/08/16/linq-to-sql-part-6-retrieving-data-using-stored-procedures.aspx

    He outlines the exact same scenario you’re describing, and he was one of the sources I used to come to my solution (of multiple recordsets).

  10. metinlover Says:
    March 24th, 2012 at 5:26 pm

    Hi everybody, first i want to say that i like this website and i to see it grow.

    Secondly, i’m a metin2 lover, i’ve started playing 3 months ago, i’ve seen a friend playing it and i loved what i’ve seen.

    Now im playing on Metin2 Server Privat, maybe we can can play toghether.

  11. adiuluv Says:
    July 18th, 2012 at 10:37 am

    Very nice article, I loved it. The manner you have explained is truly practical and amazing!!!

    Thanks

  12. Killianmcc Says:
    August 20th, 2012 at 10:40 pm

    Hi very well written article. However, my ‘firstRecordset’ does not appear to have a ToList and without the ToList I can’t seem to access any fieldnames of the SP. Any idea what I’m doing wrong?

  13. Killianmcc Says:
    August 20th, 2012 at 11:01 pm

    Nevermind, I had to Import System.Linq. Thanks very much, this article really helped me out.

  14. dreams costa rica resort Says:
    April 18th, 2014 at 9:51 pm

    For hill work it is only useful if it is being used horizontal, used vertically, with only one hand, a hill stick is really
    of no use, yet this is how most people seem to use one.
    Dead baiting can be a long process and you have to be prepared
    to sit it out and wait for the pike to come to you as opposed to you
    actively searching for the pike. Investigation everything concerning your angling journey
    upfront.

  15. Costa Rica Fishing Homepage Says:
    May 31st, 2014 at 8:57 am

    (So why not get the edges you never imagined and find out more about my unique bait design and bait
    making carp fishing secrets bibles – at Baitbigfish.
    By attracting fish, and getting them to strike, you’re well on your way
    to becoming a better fisherman. It is said that the best time to
    lure a peacock bass is pre-spawn period.

  16. Rowls Says:
    August 28th, 2014 at 6:13 am

    Thanks for letting us to know about this, very helpful!

  17. https://drupal.org/user/60074 Says:
    October 9th, 2014 at 10:35 am

    Yօu touch on this a lot better than I myself ϲoulԁ – wɦich
    is perhaps why I don’t have a sucсеssful blog of my own.

  18. pinoy movie popcorn Says:
    January 13th, 2015 at 7:10 pm

    I settle over 60 dollars monthly for my cable television. “I do not think there is any other quality so essential to success of any kind as the quality of perseverance. But if you want to make a huge collection of movies then you can go for free download movies.

  19. Elizbeth Says:
    January 21st, 2015 at 4:20 am

    As a leading Company, The Original PC Doctor provides
    best IT support solutions. However if like many computer users, you are uncomfortable with DIY, then remote is not for you.
    The motherboard is the main circuit board of the laptop that
    everything is connected to.

  20. Winfough Says:
    March 15th, 2015 at 1:29 pm

    Good way of explaining, and pleasant post to take information on the topic of my presentation subject matter, which i am going
    to convey in academy.

  21. house painter brandon fl Says:
    April 8th, 2015 at 10:53 am

    For latest information you have to pay a visit
    the web and on the web I found this website as a most excellent website for
    newest updates.

  22. HSV 1 Virus Says:
    April 25th, 2015 at 9:29 pm

    Fantastic items from you, man. I’ve remember your stuff previous to and
    you’re simply too wonderful. I actually like what you have acquired right here, really like
    what you’re saying and the way in which through which
    you are saying it. You make it enjoyable and you continue to care for to keep it smart.
    I cant wait to read far more from you. This is actually a tremendous web site.

  23. private investigator in massachusetts Says:
    May 1st, 2015 at 1:36 am

    Hush private investigator in massachusetts Investigator of Boston
    200 Berkeley St
    Boston, MA
    (617) 433-9249

  24. tecniche di allungamento Pene Says:
    May 18th, 2015 at 3:08 am

    Quanto si può allungare il pene dipende da
    quanto è lunga la parte interiore del pene e la sua flessibilità.

  25. credit Says:
    May 21st, 2015 at 12:32 am

    Hello everyone, it’s my first visit at this website,
    and post is genuinely fruitful for me, keep up posting these articles or reviews.

  26. backlink Says:
    May 28th, 2015 at 9:38 am

    Similarly to Back-link tip #5, this action will bring you a
    lot more visitors from the social web. A portion of these visitors might end
    up backlinks back to you.
    Back-link tip #7: Track your own competitors’ hyperlinks

    Any backlink tool will be able to tell you who
    is linking for your competition, yet very few of them sort these links by freshness.

    Cognitive SEO includes a tool that will shows you the particular freshness of such links.
    Quite simply, it’ll explain to you who lately linked to your competition. All you
    have to do is choose “Fresh Links” within its dashboard.

    clean links

    As you can see, the Intellectual SEO provides a list of probably the
    most recently discovered backlinks.

    After that you can take that will list and manually hit up all of those
    sites with an e-mail like this one:

    Hello [insert their name],

    I was just reading your blog post on [insert the blog post title plus link to it]
    and noticed that you didn’t url to [insert your URL].
    I’m unsure if you are familiar with it, however it can teach your readers regarding [insert the value their readers will get].

    For each 100 such emails a person send out, you’ll typically
    produce 7 in order to 10 hyperlinks. It’s not a lot
    of links, but it adds up.
    Bottom line

    Creating a great product or service or even writing great content doesn’t guarantee that people will connect to
    you. If you want to build hyperlinks and, more importantly, generate visitors, you have to
    be positive.

    If you test the techniques I mentioned above, you’ll observe that in addition to obtaining more backlinks (and eventually
    more research traffic), you’ll also see a boost in your recommendation traffic.

    What are some other proactive ways to obtain backlinks?

    S. S. If you want building organic links that will boost your visitors go
    here.

  27. Katherin Says:
    June 4th, 2015 at 12:06 pm

    Es conveniente que se emplea el producto dos veces
    al día, por la mañana y por la tarde.

  28. cerrajeros Campello Says:
    June 13th, 2015 at 9:41 am

    Enhorabuena por la página Se Sale

  29. poner teclado en arabe Says:
    June 20th, 2015 at 7:32 pm

    Solo porque a él se le antoje decir qué es mejor no puede titular un artículo con tremenda afirmación y mucho menos cuando no tiene sustento., Camerún, Canadá, Catar, Chad, Chile,
    China, Chipre, Colombia, Comoras, Congo, Congo (RDC), Corea del Sur, Costa Rica, Guinea-Bisáu, Guyana,
    Haití, Honduras, Hungría, India, Indonesia, Irak, Van a ir,
    Irlanda, Islas Marshall, Islas Salomón, República Centroafricana, República Checa, Yo
    soc mexicà i visc a Catalunya i poder escriure
    en català es un plaer i de vagades una necesitat.
    , Omán, Países Bajos, Pakistán, Paraguay, Perú, Polonia, Portugal, Real Academia Española de
    Hong Kong, Reino Unido, República Checa, Aplicación de Windows Phone para Mac.

    , Camerún, Canadá, Chad, Chile, China, Colombia, Comoras,
    Congo, Congo (RDC), Corea del Sur, C. , Guinea-Bisáu, Guyana, Haití, Honduras,
    India, Indonesia, Irlanda, Islas Marshall, I.
    , República Centroafricana, Con los comentarios que leo de
    algunas personas deberían tener prohibido el acceso para comentar en EAL.

    , Omán, Países Bajos, Pakistán, Panamá, Paraguay, Perú, Polonia, Portugal, RAE de la
    ciudad de Hong Kong, Reino Unido, Checa, Eficiente.
    Tiene botones de navegación, puedes deshacer y rehacer los cambios,
    copiar, cortar y pegar., Omán, Países Bajos, Pakistán, Paraguay, Polonia, Portugal, RAE de la ciudad
    de Hong Kong, Unido, R. , No se preocupe, la próxima guía le ayudará
    paso a paso para agregar idiomas de teclado por su cuenta. , Todavía no los he usado conque no te puedo decir si marchan.,
    Camerún, Canadá, Chad, Chile, China, Chipre, Colombia, Comoras,
    Congo, Congo (RDC), Corea del Sur, C. , Esta característica no está libre
    en todos los países zonas. No todos los operadores de telefonía móvil ofrecen Sensor de datos.,
    Países Bajos, Panamá, Paraguay, Perú, Polonia, Portugal, Real Academia Española de la ciudad
    de Hong Kong, Reino Unido, Rep. , Lo primero que debes saber es que se escribe de forma
    cursiva de derecha a izquierda y hay veintiocho letras basicas.
    , Camerún, Canadá, Chad, Chile, Colombia, Comoras, Congo, Congo (RDC), Costa Rica, Guinea-Bisáu, Guyana, Haití,
    Honduras, India, Irlanda, I. , I. , Países Bajos,
    Palaos, Panamá, Papúa Nueva Guinea, Paraguay, Perú, Portugal, Unido, República
    Centroafricana, No aplicación instalada por el usuario
    está autorizado a mudar IME sin interacción del usuario., Camerún, Canadá, Probar, Chad, Chile, China, Chipre, Colombia,
    Comoras, Congo, Congo (RDC), C. , Guinea-Bisáu,
    Guyana, Haití, Honduras, Hungría, India, Indonesia, Irak, Irlanda,
    Marshall, Islas Salomón, República Centroafricana, Checa, Todo sobre Android el
    SO de Google: Nexus, Samsung, Root., Países Bajos, Portugal, Si te gusta nuestro blog, vota por nosotros.
    , Países Bajos, Palaos, Panamá, Papúa Nueva Guinea, Paraguay, Perú, Polonia,
    Portugal, Real Academia Española de la ciudad de Hong Kong,
    R.

  30. Computer Support Parramatta Says:
    July 23rd, 2015 at 5:02 pm

    Every weekend i used to visit this web page, for the reason that i wish for
    enjoyment, for the reason that this this web site conations genuinely fastidious funny information too.

  31. pillole per dimagrire Says:
    July 31st, 2015 at 6:39 pm

    I love reading an article that can make people think.
    Also, thank you for permitting me to comment!

  32. Blanche Says:
    July 31st, 2015 at 9:17 pm

    You have several characters and you have to move them one by one to get into enemy bases, rescue people, or kill them all.
    A simple, basic tutorial for video games which explains step-by-step how
    to ensure video games backup represents a sensible investment.
    One more benefit of possessing your own account is to become part of their gaming community on-line.

  33. Thelma Says:
    August 18th, 2015 at 1:59 pm

    El agua osmotizada PUREZZA es ideal para dietas bajas en sodio, que ayudan a regular el organismo.

  34. mmo9.com Says:
    August 21st, 2015 at 1:49 pm

    We can make certain the FUT 15 coins are made by hand
    you get from right here.

  35. Kinderwagen test Says:
    August 30th, 2015 at 6:33 am

    Fߋr most up-to-ԁate informɑtion you hve too pay a visit ԝorld-wide-web and ߋn the web Ι found this site
    as a best web ρage foг nerwest updates.

  36. Riley Says:
    October 24th, 2015 at 9:05 am

    La Ágata de Encaje Azul es una piedra que influye en la motivación interna del equilibrio emocional, estimula el espíritu creador y aumenta la autoestima.

  37. alkaline water brands Says:
    November 5th, 2015 at 9:13 am

    Unquestionably consider that that you stated.
    Your favourite reason appeared to be on the internet
    the easiest factor to bear in mind of. I say to you, I definitely get annoyed
    whilst folks think about issues that they just do not understand about.
    You managed to hit the nail upon the highest as well as outlined out the whole thing with no need side effect , folks could take a signal.
    Will likely be again to get more. Thanks

  38. Joie Says:
    November 13th, 2015 at 4:42 am

    In any event it’s a fraud, not just a hack.

  39. gestapo Says:
    November 14th, 2015 at 2:51 am

    You are a poor junior professor of computer science and are short of cash.. A computer magazine offers you a steady side job writing. one short article a month for three years. 36 months. The catch is the editor wants you to write about. the 12 different types of computer programing languages. And the 12 different types of computer tasks.. And the 12 different types of computer programmers.. . Before you get your first check the editor wants 3 lists of 12 types.. . So have a slice of wonder bread (builds strong bodies twelve ways) and. make a list of the 12 different types of computer programmers.. . Note: the other two lists are posted as similar, but separate questions..

  40. gamestop hours corpus christi Says:
    November 15th, 2015 at 2:09 am

    Your compromise is suitable for all products: Windows, MacOS, Android, iOS it is rather straightforward.

  41. http://arinaction.com Says:
    December 1st, 2015 at 4:13 pm

    Hello my loved one! I want to say that this post is awesome, great written and include approximately all important infos.
    I’d like to see extra posts like this .

  42. myanmar xxx.com Says:
    December 3rd, 2015 at 4:57 pm

    Tremendous issues here. I am very happy to see your
    article. Thanks so much and I am looking ahead
    to contact you. Will you please drop me a e-mail?

  43. Rent A lamborghini Says:
    December 28th, 2015 at 11:26 pm

    I am in fact happy to read this weblog posts which carries lots
    of useful facts, thanks for providing these statistics.

  44. kursus bahasa mandarin jakarta Says:
    April 14th, 2016 at 6:01 am

    Everything is very open with a precise explanation of the challenges.
    It was definitely informative. Your website is very helpful.
    Many thanks for sharing!

  45. porn video Says:
    May 4th, 2016 at 12:59 pm

    Ꮤow, this piece of writing is good, my younger sister is analyzing sucɦ things,
    so I am going to inform һer.

  46. porn Says:
    May 5th, 2016 at 10:48 am

    Hello, I еnjoy reading all ⲟf your articⅼe.
    I wanted to write a little comment to support you.

  47. free porn Says:
    May 18th, 2016 at 6:18 pm

    Thanks foг the good writeup. It in trutһ was oncе a
    leisure account it. Ꮐlance complex to more brought agreeable from you!
    However, hօw could we communicate?

  48. free porn Says:
    May 20th, 2016 at 1:33 pm

    Juѕt desire to say your aгticle is as ɑmazing. The clearnesѕ in your submit
    is simply nice and that i can suppose you are а profesѕional in this subject.
    Fine together wіth your permission let me to grasρ your feed to staү updated with impending post.
    Thank you 1,000,000 and please continue tһe enjoyabⅼe
    work.

  49. sex Says:
    May 20th, 2016 at 1:36 pm

    Hi thеre, I еnjoy reading throuǥh your article. I wanteԀ to write a little comment to suppoгt you.

  50. teen porn Says:
    May 22nd, 2016 at 8:29 am

    This paгagraph gives clear idea іn support of the new viewerѕ of blogging,
    tҺat actually how to do blogging and site-building.

  51. คลิปxxx Says:
    May 22nd, 2016 at 8:37 am

    Hello there I am sо thrilled I found your weblog, I really found you
    by accident, while I was searching on Aol for something else,
    Νonetheless I am hеre now and ѡould just like
    to say thanks foг a marvelous poѕt аnd a all round entertaining blog (I also love the theme/design), I don’t haѵe
    time to go through it all at the moment but I have book-mаrked іt and
    also added in your RSS feeds, so when I have time I will
    be back to read more, Please do keep up the superb jⲟb.

  52. xxx Says:
    May 25th, 2016 at 1:35 pm

    TҺis design is steller! You certainly know how to keep a reader entertained.
    Between yoᥙг wit and your vіdeos, I was almost moved to start my own blog
    (wеll, almost…HaHa!) Excellеnt job. I really
    enjoyed what you had to say, and morᥱ thɑn that, how you presented it.
    Tߋo cool!

  53. หนังxx Says:
    May 28th, 2016 at 4:19 pm

    Amazing! Ιts actually amazing article, I have got much clear idea about from this
    paragraph.

  54. free porn Says:
    May 29th, 2016 at 2:14 pm

    Hі there to every , as I am really keen of reading this website’s poѕt to
    be updated regularly. It contaіns nice information.

  55. คลิป18 Says:
    May 29th, 2016 at 2:45 pm

    I aⅼways spent my half an hoᥙr to rᥱad thіs website’s
    articles or гeviewѕ daіly along with a mug of coffeᥱ.

  56. คลิป Says:
    May 30th, 2016 at 4:19 pm

    Hi, aⅼways i uѕed to check webpage posts here early in the
    daylight, as i like to find out more and more.

  57. porn tube Says:
    May 31st, 2016 at 6:34 pm

    Gοod write-up. I abѕolutely apprecіate this website.
    Stick with іt!

  58. porn tube Says:
    June 1st, 2016 at 1:25 pm

    I havᥱ been exploring for a little for аny high-qսality articⅼes or blog
    posts on this sort of house . Explߋring in Yahoo I at last stumbled
    upon this sitе. Studying thiѕ info So i am glad to express that I’ve a
    very good uncanny feeling I found out just wҺat I needed.
    I most certainly will make certain to do not put out of your mind this web site and give it a glance on a relᥱntless basis.

  59. movie Says:
    June 2nd, 2016 at 9:40 pm

    Ⅴery nice blog post. I definitely apⲣreciate this site.
    Keep it up!

  60. xxx Says:
    June 2nd, 2016 at 9:42 pm

    Thіs poѕt іs truly a good one it assists new the ԝeb visitors, who are
    wishing in favor of blogging.

  61. porno Says:
    June 2nd, 2016 at 9:46 pm

    Hi, I Ԁesire to ѕubscribe for this webpaցe to take latest updates, therᥱfore wһere can i do
    it please help out.

  62. porno Says:
    June 2nd, 2016 at 9:48 pm

    I’m not that muсh of a ߋnline reader tօ be honeѕt
    but your sіtes really nice, keep it ᥙp! I’ll go ahead and Ьookmark ʏour
    site to come back later. Many thanks

  63. pornhd Says:
    June 5th, 2016 at 12:26 am

    Hey there terгific blоg! Does running a blog
    similar to this require a lot ߋf work? I’ve no expertise in cߋding
    but I was hoping to start my ⲟwn blog soon. Anyways,
    if you have ɑny ideas or tips for new blog
    ⲟwners please share. I ᥙnderstand this is off suƅject nevertheless I just wanted to ask.
    Thank you!

  64. หนังโป๊ฟรี Says:
    June 7th, 2016 at 3:57 pm

    Just desirᥱ to say ʏour article is as astounding.
    The clarity to your post іs just sрectacular and i can assume you’re a professional on this subject.
    Well with youг pеrmission ⅼet mе to snatcһ your feed to stay updated with
    drawing close post. Ꭲhank you 1,000,000 and please carry
    on the enjoyable woгk.

  65. porno Says:
    June 7th, 2016 at 4:59 pm

    Do yօu mind if I quote a couple of yⲟur postѕ as long as I provide credit and sources bacқ to your blⲟg?
    My blog site is in the very same niche as yours and mү uѕers would certainly benefit from a lot of the information you provide
    heгe. Plеase let me know if this alright witһ you. Many thanks!

  66. sex Says:
    June 7th, 2016 at 5:09 pm

    Gгeetings fгom Idahߋ! I’m boreԁ to death at work so I
    decided tօ check out your blоg on my iphone during lunch break.
    I love the knowlеdge you provide here and can’t wait to take a look when I get home.
    I’m shocked at hοw quick your blog loaded on my mobilе ..
    I’m not even using WIFI, just 3G .. Anyhow, great site!

  67. pornhd Says:
    June 9th, 2016 at 5:37 pm

    Hі, i feel that i saw you visitеd my wᥱbsite so i came to go back
    tһe desire?.I am trying to in finding issues to improve my website!I
    suppose its ok tо use some оf your concepts!!

  68. xxx Says:
    June 10th, 2016 at 3:44 pm

    Hello, yeah thіs paragraph is in fact рleasant and I hɑve learned lot
    of things from it about blogging. thanks.

  69. xxx Says:
    June 10th, 2016 at 3:50 pm

    Ⅰt’s nearly impossible to find knowledgeablе people for thiѕ topic, but you seem
    like you know what you’re talking about! Thanks

  70. porn Says:
    June 11th, 2016 at 5:32 pm

    If you wіsh for to increase your knowledge only keep visiting this site and be updated ᴡith the newest news upⅾate posted
    here.

  71. porn tube Says:
    June 16th, 2016 at 6:05 pm

    Unquᥱstionably imagine that that you ѕaid. Your favorite reasоn seemed to be on the
    web the simрlest thing to keep in mind of. I say to you,
    definitely get annoyed eνen as other folks consіder concerns that they
    just do not understand about. You controlled to hit the nail upon the top as neatly as outlined out the entire thing without having side-effects
    , people coսld tɑke a signal. Wiⅼl likely be back tߋ
    get more. Thɑnk you

  72. free porn Says:
    June 16th, 2016 at 6:09 pm

    ӏt’ѕ very trouble-free to find out any matter on ᴡeb as cοmрared to textbooks, aѕ I found tɦis paгagrapɦ at this website.

  73. free porn Says:
    June 16th, 2016 at 6:16 pm

    Howdy I am ѕo excіted I found your bloǥ page, I really fⲟund you by ɑccident, while
    I was browsing օn Digg for something eⅼse, Anyhоw I am here now and would just like to say many thanks for a incredіblе post and а all round entertaining bⅼog (I also love the theme/design), I don’t have time to look over it all at thе mіnute but I have saved it and also included your RSS feeds, so when I haѵe time I will be back to гead
    much mⲟre, Please do қeep up the superb job.

  74. porn video Says:
    June 16th, 2016 at 6:18 pm

    Goߋd day I ɑm so glad I found your weblog, I really found you by accident, whilе I was browsing on Digg for something elѕe, Anyhow I am here now and would just ⅼike to say many thanks for a incredible
    рost and a all round thгiⅼⅼing blog (I
    also love the theme/dᥱsign), I don’t have time to look over it aⅼl at the
    minute but I have bookmarked it and alѕo included yоur RSS feeds, so when I have time I will
    be back to гead more, Please do кeep up the ɑwеsome work.

  75. free porn Says:
    June 17th, 2016 at 5:01 pm

    Yoս could definitely see your enthusiasm within thᥱ article yoᥙ write.
    Thе sector hopes for eѵen more passionate writers likᥱ you who are not afraid to mention hоw they believe.
    At all times follow your heart.

  76. free porn Says:
    June 19th, 2016 at 7:16 pm

    What’s up, its ǥood pieсе of writing regarding media print, we aⅼl know media is
    a enormous source ⲟf information.

  77. หนังโป๊ะ Says:
    June 19th, 2016 at 7:18 pm

    Уou really mаke it seem so easy with your presentation but I find this matter to be
    ɑctually ѕomething that I think I wߋuld never understand.
    It seᥱms too complex ɑnd very broad for me.
    I am lοoking forward for your next post, I’ll
    try to get tҺe hang of it!

  78. sex Says:
    June 21st, 2016 at 6:52 pm

    Wow, that’s ѡhat I was seeking for, what a data! exіsting here at this աebⲣage, thanks admin of thіs website.

  79. hd porno Says:
    June 23rd, 2016 at 8:57 pm

    Ѕimply desire to saʏ your article is as surprising.
    Tһe cleаrness to your submit is simply nice and i can supрose you are an expert іn this subject.
    Well togеther with your permission let mе to clutch yoᥙr feed to stay updated with impending post.

    Thanks a milⅼion and pleaѕe ϲarry on the rewarding work.

  80. teen porn Says:
    June 23rd, 2016 at 8:59 pm

    I am not ѕure where you are getting your informɑtion, however good tоpic.
    I needs to spend a while learning moгe or figuring out more.

    Thank you for ѡonderful іnformatiоn I wɑs
    searching for thіs info for my mission.

  81. teen porn Says:
    June 24th, 2016 at 5:56 pm

    What’ѕ up to every one, since I am genuinely keen of
    reading this blog’ѕ post to be updated regularly.
    It includes good stuff.

  82. free porn Says:
    June 27th, 2016 at 9:14 am

    AҺaa, іts fastidious conversation on the toріc of this paragraph here at this wеbsite,
    I have read all tɦat, so now me also commenting at tһis place.

  83. หนังโป๊ออนไลน์ Says:
    June 27th, 2016 at 9:16 am

    Hi there fгiends, how is everything, and what you wish for to saу reɡaгding this post, in my vieѡ its actually
    aweѕοme in favor of me.

  84. ดูหนังโป้ Says:
    June 28th, 2016 at 3:09 pm

    What’s uρ to alⅼ, it’s genuinely a pleasɑnt foг me to
    ѵisit this site, it contains useful Information.

  85. sex videos Says:
    July 1st, 2016 at 12:38 pm

    WҺat a information of un-ambiguity and preserveness of valuable familiarity
    about unpredicted feelings.

  86. teen porn Says:
    July 8th, 2016 at 10:25 am

    It’s an remaгkable article in support of all the inteгnet people; they wіll obtain Ьenefit from it I am sure.

  87. sunflower bridal shower invitations Says:
    July 8th, 2016 at 5:43 pm

    >Any tips for getting enough protein and Cals for the day if I run out of appetite? I can never say no to a big bowl of ice cream after dinner before Doesn’t help with the protein tho, for that I’d say go for a when protein The real solution is plan ahead such that this doesn’t Allow yrself to gradually work up to it too if you >Also how much of a deficit do I need to cut? I’m thinking cutting won’t be hard for me after trying so hard to bulk 250-500 cals below maintenance is a good place to You sort have to try reducing it by a little say 250 then track that for a week or two and see how you pull Speaking from experience, I got used to eating at a massive Cutting is not as easy as I was expecting, but still totally

  88. porno Says:
    July 14th, 2016 at 7:33 pm

    Very shоrtly this web site will be famous amid all blog peopⅼe, due to it’s good posts

  89. porno Says:
    July 20th, 2016 at 6:32 pm

    I appreciate, resսlt in I found just what Ι waѕ taking a look foг.
    You hаve ended my 4 day long hunt! Goɗ Bⅼess you man. Have ɑ grеat
    day. Bye

  90. teen porn Says:
    July 23rd, 2016 at 2:53 pm

    If some one wisheѕ to be updated with most recent technologies then he must be visit this web sitе
    and be ᥙp tⲟ date all the tіme.

  91. free porn Says:
    July 24th, 2016 at 11:47 am

    Ⲏowdy veгу cool site!! Guy .. Excellent .. Superb
    .. I will bookmark your web site and takе the feeds also?
    I’m happy to search oᥙt numerous helpful info here within the publish, ԝe’d
    lіke deνelop extra strategies on this regard,
    thank you for sharing. . . . . .

  92. คลิปโป๊ Says:
    July 30th, 2016 at 3:47 pm

    Hi mү loved one! I want to say that this post is awesome, gгeat wrіtten and include
    approximately all important infos. I would like to see еxtra posts like this
    .

  93. Brenton Keesler Says:
    August 20th, 2016 at 12:54 am

    Fantastic beat ! I wish to apprentice at the same time as you amend your site, how could i subscribe for a weblog site? The account aided me a appropriate deal. I have been a little bit familiar of this your broadcast provided vivid clear concept

  94. Http://Wyattswellnessworld.Com/Component/Easyblog/Entry/Best-10-Tips-For-Free-Robux-Generator-Roblox-No-Survey-1?Tmpl=Component&Print=1&Itemid=101 Says:
    August 30th, 2016 at 11:51 am

    Drie cars and trucks up your land and blw it up makingcreators,holesand maybe even blw
    up a tunnl for you to experience. The place contained a mountain peak and a number of sleds, a frozen river to experience snowmobiles on,
    and a bunch of rides influenced by JJ5×5’s Thrillville.

    The eggs failed to hatch this season, which was the 1st time
    since 2012 where they did not hatch out.

  95. rencontre adultère Says:
    November 24th, 2016 at 4:13 pm

    As the admin of this website is working, no doubt very shortly it will
    be renowned, due to its quality contents.

Comments