آموزش Code First با SQLite توسط فریم ورک Entity 7
دوشنبه 13 مهر 1394در این مقاله نحوه کار به روش Code First توسط بانک اطلاعاتی SQLite بررسی خواهد شد. تا قبل از فریم ورک Entity 7 مایکروسافت از SQLite پشتیبانی نمی کرد. با وجود اینکه SQLite از Entity با روش خود پشتیبانی می کرد اما این پشتیبانی دارای تمامی قابلیت ها مانند Sql Server نبود. روش Code First یک مثال برای این قضیه می باشد.
تا قبل از فریم ورک Entity 7 مایکروسافت از SQLite پشتیبانی نمی کرد. با وجود اینکه SQLite از Entity با روش خود پشتیبانی می کرد اما این پشتیبانی دارای تمامی قابلیت ها مانند Sql Server نبود. روش Code First یک مثال برای این قضیه می باشد.
پیش زمینه
فریم ورک Entity 7 یک نسخه انتشاری بسیار ویژه است چرا که پایه آن اساسا تغییر نموده است. هر چند که آن را بعضی از پلتفرم ها و بانک های اطلاعاتی پشتیبانی نمی کنند. (برای مثال Xamarin)
راه اندازی آن بسیار ساده و روان شده است. این شما را به صورت گام به گام برای استفاده Entity 7 با SLQLite همراهی می نماید.
راه اندازی
برای راه اندازی یک Solution از نوع Entity 7 کافی است تنها یک Class Library سی شارپ، یا یک برنامه WPF و یا یک برنامه WinForm ایجاد نمایید.
به مسیر File > New > Project رفته و یک پروژه از نوع دلخواه ایجاد نمایید.
فریم ورک Entity 7 ماژولار شده است. برای کدنویسی آخرین ورژن را توسط NuGet Package Manager دانلود نمایید. برای نصب فریم ورک Entity 7 نیاز به NuGet 2.8.6 یا نسخه های بالاتر می باشد. به یاد داشته باشید که حتما ویژوال استادیو را پس از بروزرسانی بسته و دوباره باز نمایید.
Visual Studio 2015 نیاز به update کردن ندارد و خود نیز به روز می باشد
Visual Studio 2013 نصب آخرین نسخه از Nuget
Visual Studio 2012 نصب آخرین نسخه از Nuget
حالا شما آماده نصب فریم ورک Entity 7 می باشید:
روی نام پروژه کلیک راست کرده و گزینه Manage NuGet Packages for solution را انتخاب نمایید.
سمت چپ روی Online کلیک کرده و دقت کنید که nuget.org انتخاب شده باشد.
فیلتر "stable only" را جایگزین "include prereleases" نمایید.
"EntityFramework.SQLite" را جستجو کرده و پکیج آن را نصب نمایید.
کدزنی
فریم ورک Entity یک فریم ورک ORM می باشد. این بدین معناست که آن المنت های بانک اطلاعاتی را تبدیل به کلاسی برای معرفی آنها می نماید.(به اصطلاح آنها را map می کند). فریم ورک Entity بانک اطلاعاتی را به دو کلاس عمده map می نماید :
یک کلاس entity برای معرفی ساختار جدول بانک اطلاعاتی
یک کلاس Context برای معرفی خود بانک اطلاعاتی
این کلاسها حداقل تنظیمات برای شروع کار می باشند.
اولین جدول می تواند به صورت کد زیر تعریف شود. این اولین Entity ما می باشد :
public class MyEntity { public string MyColumn { get; set; } }
یک Context کلاسی است که از DbContext ارث بری می کند. پروپرتی MyTable کلاس MyEntity را برای جدول بانک اطلاعاتی تعریف می نماید. متد OnConfiguring وظیفه ارتباط Context با بانک اطلاعاتی را عهده دار می باشد:
public class MyContext: DbContext { public DbSet<MyEntity> MyTable {get;set;} protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { var connectionStringBuilder = new SqliteConnectionStringBuilder {DataSource = "test.db"}; var connectionString = connectionStringBuilder.ToString(); var connection = new SqliteConnection(connectionString); optionsBuilder.UseSqlite(connection); } }
حالا Conetxt به بانک اطلاعاتی test.db که درون همان پوشه ای که باینری برنامه ذخیره شده است قرار خواهد گرفت. اما البته هنوز بانک اطلاعاتی هنوز موجود نیست. این به خاطر CodeFirst می باشد. تکه کد زیر بانک اطلاعاتی را ایجاد می کند :
using (var db = new MyContext()) { db.Database.EnsureCreated(); }
در نتیجه فایل SQLite با نام test.db ساخته شد.
نتیجه گیری
ما یک بانک اطلاعاتی خیلی ساده دارای یک جدول و یک ستون ساختیم.
- C#.net
- 4k بازدید
- 3 تشکر