سلام.
قبل از هر چیز، LINQ to SQL (و در نتیجه DBML ها) رو فراموش کنید (
بدین دلیل) و از Entity Framework استفاده کنید. اما سوال اصلی، فرض کنید این In-Memory Data ها رو به هر شکل و شمایلی در برنامه نگهداری کردید، آیا در نهایت نباید این داده ها جایی Persist بشن؟ چون بالاخره با اتمام Process این برنامه، داده ها در صورتیکه فقط در Memory باشن از بین خواهند رفت... بنابراین اگر به هر دلیلی باید این داده ها رو Persist کنید، توصیه می کنم مدیریت اونها رو به یک DBMS بسپرید. اما اگر نیازی به Persist کردن اون داده ها ندارید، باز هم می تونید با استفاده از Entity Framework، مدلی برای داده های مورد نظرتون بسازید و توسط یک In-Memory Provider برای EF، داده ها رو در حافظه نگهداری کنید (بطور مثال SQLite از In-Memory Table ها پشتیبانی میکنه). البته شما ساز و کاری به اسم DataSet ها نیز دارید، که نگهداری داده ها رو بصورت Disconnected میسر کرده و نمی تونید اونو نیز نادیده بگیرید.
موفق باشید.