سلام کاربران عزیز، امیدوارم که شاد باشید.صبح پاییزیتون بخیر باشه.میخوام اموزشی درموردچگونگی ایجاد یک connection string و کار با نسخه ی SQL Server LocalDB داشته باشیم.کلاس MovieDBContext که ایجاد کردید، وظیفه ی اتصال به پایگاه داده و نگاشت اشیا movie به سطر (رکورد) های پایگاه داده را بر عهده دارد. یکی از سوال هایی که ممکن است برای شما پیش آید این است که چگونه می توان تعیین کرد به کدام پایگاه داده متصل شود. در پاسخ باید گفت که نیازی نیست مشخص کنید کدام پایگاه داده مورد استفاده قرار گیرد، EF خود به صورت پیش فرض به پایگاه داده ی LocalDB متصل می شود. در این بخش به صورت صریح یک connection string در فایل Web.config برنامه خود اضافه می کنیم.

SQL Server Express LocalDB

LocalDB یک نسخه ی سبک وزن و کم حجم از موتور پایگاه داده ی SQL Server Express است که به مجرد تقاضا راه اندازی شده و در حالت user mode اجرا می شود. LocalDB در یک حالت اجرایی ویژه ی SQL Server Express اجرا می شود که به شما اجازه می دهد با پایگاه داده به صورت فایل های mdf. کار کنید. به طور معمول، فایل های پایگاه داده ی LocalDB در پوشه ی App_Data پروژه ی وب نگه داری می شود.

SQL Server Express به هیچ وجه برای استفاده در برنامه های تحت وب تولیدی (production web applications) توصیه نمی شود. این امر به خصوص درمورد LocalDB صدق می کند؛ به هیچ وجه نباید LocalDB برای تولید با یک برنامه ی تحت وب بکار رود زیرا این نسخه اساسا برای کار با IIS (سرویس های اطلاعات اینترنتی) طراحی نشده است. با این حال، یک پایگاه داده ی LocalDB را می توان به راحتی به SQL Server یا SQL Azure انتقال migrate) )داد.

در ویرایش های ۲۰۱۲ و ۲۰۱۳ محیط برنامه نویسی Visual Studio، LocalDB به صورت پیش فرض همراه با خود Visual Studio نصب می شود.

به صورت پیش فرض، Entity Framework به دنبال یک connection string که دارای اسمی یکسان با کلاس object context (برای این پروژه ی خاص MovieDBContext) می باشد، می گردد.

فایل Web.config که در زیر به نمایش گذاشته شده را باز کنید. (منظور آن فایل Web.config که در پوشه ی Viewsقرار دارد نیست.)

clip_image002

المان را پیدا کنید:

clip_image004

Connection string زیر را به المان داخل Web.config اضافه نمایید:

مثال زیر بخشی از فایل Web.config را نشان می دهد که connection string جدید به آن اضافه شده است:

connectionStrings>

دو connection string بسیار شبیه هستند. اولین connection string، DefaultConnection نامیده شده و برای مدیریت عضویت در پایگاه داده و اینکه چه کسی می تواند به برنامه (membership database) دسترسی داشته باشد، بکار می رود. Connection string ای که شما اضافه کرده اید یک پایگاه داده LocalDB به نام Movie.mdf تعریف می کند که در پوشه ی App_Data قرار می گیرد.

اسم connection string باید با اسم کلاس DbContext مطابقت داشته باشد.

using System;

using System.Data.Entity;

namespace MvcMovie.Models

{

public class Movie

{

public int ID { get; set; }

public string Title { get; set; }

public DateTime ReleaseDate { get; set; }

public string Genre { get; set; }

public decimal Price { get; set; }

}

public class MovieDBContext : DbContext

{

public DbSet Movies { get; set; }

}

}

در واقع نیازی به افزودن connection string، MovieDBContext نیست. در صورت مشخص نکردن connection string، EF خود یک پایگاه داده ی LocalDB به همراه اسم کامل کلاس DbContext (در این مورد MvcMovie.Models.MovieDBContext) در پوشه ی users ایجاد می کند. می توانید اسم پایگاه داده را مطابق میل خود انتخاب کنید مادام اینکه دارای پسوند .MDF باشد. به عنوان مثال می توان اسم پایگاه داده ی مورد نظر را MyFilms.mdf انتخاب کرد.