به DataSet اصطلاحاً Local In-memory Cache Of Data گفته میشه. یعنی داده ها رو به طور محلی در حافظه برنامه نگه می داره.
کوئری های LINQ روی دیتاست اگه زده بشه (LINQ-to-DataSet) در این صورت هیچ درخواستی به سرور ارسال نمیشه اما در مورد LINQ-To-SQL اینطور نیست و دستورات به SQL Server ارسال و نتایج برگشت داده میشه.
و در مورد LINQ تا زمانی که نتایج رو Enumerate نکنید یعنی در حلقه foreach استفاده نکنید یا از اون Count نگیرید یا ToList یا ToArray یا ... کلاً هر عملی که نیاز به تحویل داده خروجی نباشه رو انجام ندید اجرا نمیشه یعنی خاصیت اجرای تعویقی داره (Deffered Execution).