سلام
1) اگر از EF-CodeFirst استفاده کنید، این امکان را دارید که خود برنامه به طور خودکار در اولین اجرا کل دیتابیس را ایجاد کند.
یعنی حتی نمیخواهد فایل mdf داشته باشید که بخواهید Attach کنید. 2) نسخه های SQL Server Express و SQL Server LocalDB برای برنامه های کوچک و جمع و جور و غیر شبکه ای مناسب هستند.
این نسخه ها توانایی کارکرد مستقیم با فایل mdf را بدون Attach دارند
(در واقع نوعی Attach/Detach خودکار انجام میشود) 3) درهرصورت امکان Attach دستی فایل mdf موجود هم وجود دارد.
هم با تابع
sp_attach_db
و هم با فرمان
CREATE DATABASE
در SQL Server میتوانید دیتابیس خود را Attach کنید.
برای اطلاعات بیشتر میتوانید به لینک های روی کلمات فوق، مراجعه کنید. البته باید فایل در جایی باشد که مجوز های NTFS لازم را داشته باشد و SQL Server بتواند به فایل دسترسی کامل داشته باشد.
بطور معمول Desktop یا MyDocument شما ، فضای خصوص شما هستند و نسخه های SQL Server Standard/Developer/Enterprise که از اکانت های مجزایی اجرا میشوند به این مسیرهای خصوصی دسترسی ندارند.
برای آزمایش راحت ، فایل mdf را به ریشه درایو D کپی کنید و آزمایشات تان را انجام دهید تا با خطاهای کمتری روبرو شوید.
نمونه پروژه بسیار قدیمی زیر میتواند دیتابیس را Attach کند.
http://support.h02.ir/fwlink/?LinkId=1001158667
کد به زبان VB.Net است و پروژه قدیمی است.
ولی کد خاصی ندارد و اصل کار ساده است، کافی است فرمانی مانند این را روی SQL Server اجرا کنید.
EXEC sp_attach_db
@dbname = N'DBNAME',
@filename1 = N'D:\FILE.MDF',
@filename2 = N'D:\FILE.LDF' ;
موفق باشید.