شماره تماس 09336863931 | 09178169907 پست الکترونیک provid.ir@gmail.com

آشنایی با Entity Framework 7 – قسمت هفتم

در این پست، قسمت هفتم از آموزش “آشنایی با Entity Framework 7” از وبسایت پرووید را برای شما قرار داده ایم. به ادامه ی مطلب بروید.

فراتر از بانک های اطلاعاتی رابطه ای

از ابتدای کار، مایکروسافت در نظر داشت که Entity Framework را طوری طراحی کند که برای گستره ی وسیعی از بانک های اطلاعاتی مورد استفاده قرار بگیرد. در زمان معرفی Entity Framework بانک های اطلاعاتی غیر رابطه ای به وسعت امروزه نبودند. امروزه بانک های اطلاعاتی شبیه NoSQL که یک بانک اطلاعاتی غیر رابطه ای است بسیار محبوب شده اند. دقت کنید که Entity Framework یک ORM است و این کلمه به معنی Object Relational Mapper می باشد. به کلمه ی Relational که دلالت بر بانک های اطلاعاتی رابطه ای دارد دقت کنید. با تمامی این موضوع ها، Entity Framework 7 به صورت سطح بالا از کار با بانک های اطلاعاتی غیر رابطه ای پشتیبانی می کند. لطفاً دقت کنید که گفته شد یک پشتیبانی سطح بالا: بین بانک های اطلاعاتی رابطه ای و غیر رابطه ای تفاوت های زیادی وجود دارد که Entity Framework سعی بر کنترل کردن همه ی آنها ندارد ولی در کل می توانید کوئری های ساده را که در کار با بانک های اطلاعاتی رابطه ای استفاده می کنید، برای کار با بانک های اطلاعاتی غیر رابطه ای در نظر بگیرید.

به عنوان مثال، Microsoft Azure Table Storage یک بانک اطلاعاتی غیر رابطه ای است که در زیر با استفاده از Entity Framework 7 مورد دسترسی قرار گرفته است:

public class WarrantyContext : DbContext
{
  public DbSet<WarrantyInfo> Warranties { get; set; }
  protected override void OnConfiguring(DbContextOptions options) {
    var connection =
      ConfigurationManager.ConnectionStrings["WarrantyConnection"]
                        .ConnectionString;
    options.UseAzureTableStorage(connection);
  }
  protected override void OnModelCreating(ModelBuilder builder) {
    builder.Entity<WarrantyInfo>()
           .ForAzureTableStorage()
           .PartitionAndRowKey(w => w.BikeModelNo, w => w.BikeSerialNo);
  }
}

 

در کد بالا متد OnConfiguring را می بینید که یک متد جدید است. این متد شبیه کلاس DbConfiguration عمل می کند که برای پیکربندی کلاس DbContext در زمان اجرا مورد استفاده قرار می گیرد. به علاوه، اکستنشن متد builder.UseAzureTableStorage به دلیل نصب پکیج EntityFramework.AzureTableStorage بر روی سیستم اضافه شده است. از همین الگو می توان برای دسترسی به گستره ای از بانک های اطلاعاتی مختلف استفاده کرد. برای مثال، در زیر کدی را می بینید که برای کار با SQLite استفاده شده است:

protected override void OnConfiguring(DbContextOptions builder) {
  string dir = ApplicationData.Current.LocalFolder.Path;
  string connection = "Filename=" + Path.Combine(dir, "VermontBrewery.db");
  builder.UseSQLite(connection);
}

 

در کد بالا نیز اکستنشن متد UseSQLite را به دلیل استفاده از پکیج EntityFramework.SQLite می بینیم.

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

CLOSE
CLOSE