در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

استفاده از view در Entity framework

با سلام به همه همراهان Itpro.ir در بسیاری از موارد در طراحی پایگاه داده ممکن است که ویوهایی را تعریف کنیم. که از خاصیت ویو ها استفاده کنیم. ویوها این خاصیت را دارند با آنها مانند یک جدول بانک اطلاعاتی رفتار می شود در حالی که خود جدول بانک اطلاعاتی نیستند و اطلاعات خود را از جداول دیگر می خوانند. به همین منظور فضایی را از بانک اطلاعاتی اشغال نمی کنند.

مشکلی که در این جا وجود دارد این است که با استفاده از entity framework در حالت عادی به سختی می توان از ویوها استفاده کرد. در این نکته به توضیح استفاده از ویو ها در Entity Framework Code first می پردازیم. برای استفاده از Entity Framework Code first باید کتابخانه های این بسته بر روی پروژه نصب شده باشد که در این آموزش نصب این بسته توضیح داده شده است. پس از این که این بسته بر روی سیستم نصب شد باید با توجه به ویویی که در بانک داریم یک کلاس با توجه به فیلد های آن می سازیم. دقت کنید که همه انواع داده ای باید مطابق با نوع داده ای تعریف شده در ویوی بانک باشد. کد زیر یک مثال برای این مطلب می باشد:

public class v1
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int? GroupId { get; set; }
        public int? UserId { get; set; }
        public decimal? Price { get; set; }
        public int? CustomerId { get; set; }
        public string Date { get; set; }

        public int? FactorNumber { get; set; }
    }

پس از انجام این کار باید باید این کلاس را به context معرفی کنیم و بگوییم که این کلاس باید به کدام ویو نگاشت(map) شود. برای این که Entity Framework بتواند از یک کلاس استفاده کند باید در آن کلاس یک کلید هم معرفی کنیم. به همین منظور یکی از فیلدهای ویو را به عنوان کلید معرفی می کنیم. این فیلد بهتر است که یکی از فیلد هایی باشد که شبیه به کلید است. یعنی این که کلید مورد نظر عددی باشد و تا حد امکان هم یکتا باشد البته اگر یکتا نباشد هم برنامه کار می کند. برنامه زیر این مطلب را شرح می دهد.

 public class Context : DbContext
    {
        public IDbSet<v1> v1
        {
            get { return Set<v1>(); }
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Configurations.Add(v1Map.Map());
            base.OnModelCreating(modelBuilder);
        }
    }

    public class v1Map
    {
        public static EntityTypeConfiguration<v1> Map()
        {
            var map = new EntityTypeConfiguration<v1>();
            map.HasKey(v1 => v1.Id);
            map.ToTable("v1");
            return map;
        }
    }

توضیحات بیشتر در باره ی DbContext را در سری آموزش های entity framework ببینید. توجه داشته باشید که کلاس v1Map کلاس مربوط به map کردن می باشد و کلاس اصلی برای کار با بانک اطلاعاتی کلاس context است. این کلاس یک تابع به نام map دارد که هنگام ساخته شدن مدل این تابع صدا زده می شود. در داخل همین تابع به Entity Framework می گوییم که باید این کلاس به تابع به نام v1 نگاشت(map) می شود و یک کلید هم برای آن مشخص شده است. و در نهایت در تابع main برنامه بقیه تنظیمات اتصال به پایگاه داده را مشخص می کنیم و ازآن استفاده می نماییم. کد تابع main در زیر آمده است.

internal class Program
    {
        private static void Main(string[] args)
        {
            var a = new Context();
            a.Database.Connection.ConnectionString = "Data Source=.;Initial Catalog=test;Integrated Security=True";
            a.Database.CreateIfNotExists();
            Console.WriteLine("Hi Itpro.ir User");
            foreach (var source in a.v1.ToList())
            {
                Console.WriteLine(source.Price);
            }
            Console.ReadKey();
        }
    }

همانگونه که در کد بالا دیده می شود بعد از این که Connection String مربوط به بانک اطلاعاتی مشخص شد و به بانک متصل شدیم می توانیم از آن استفاده کنیم. که در این مقاله مقادیر price را در کنسول چاپ می کند. توجه داشته باشید که در این برنامه فقط خواندن اطلاعات از ویو ها مورد بررسی قرار گرفت و برای این که بتوانیم اعمال آپدیت و درج را انجام دهیم باید از stored procedure ها و مفهوم stored procedure mapping در entity framework استفاده کنیم. Itpro باشید.

نویسنده : مهدی عادلی فر

منبع : انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#ویوها_در_entity_framework #map_کردن_در_entityframework #نمایش_اطلاعات_ویو_ها_در_entity_framework #ارتباط_با_دیتابیس_در_ef #اموزش_برنامه_نویسی_entity_framework
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....