a

ABLY مقالات و مطالب مجموعه

آموزش Entity Framework

آموزش Entity Framework

بسم الله الرحمن الرحیم



ممکن است شما بخواهید یک enumایجاد کنید و سپس این enum را در دیتابیس ذخیره کنید.برای این کار کافی است کد زیر را Model خود قرار دهید

public DataKind Kind { get; set; }



 که در واقع DataKind یک enum است که قبلا به صورت زیر تعریف شده است


namespace Ad.NegCred.Data.Model {
    public enum DataKind {
        F, //Takibe alınıp henüz tahsil edilmeyen ferdi kredi bildirimi
        FA, //Aynı dönemde takibe alınan ve tahsil edilen ferdi kredi bildirimi
        FF, //daha önceki dönemlerde takibe alındığı bildirilmiş ferdi kredi tahsil bildirimi
        K, //Takibe alınıp henüz tahsil edilmeyan kredi kartı
        KA, //Aynı dönemde takibe alınan ve tahsil edilen kredi kartı
        KF //Daha önceki dönemlerde takibe alındığı bildirilmiş kredi kartı tahsil    bildirimi
    }

    public class Datum {
        [Key]
        public long Id { get; set; }
        public DataKind Kind { get; set; }
        [StringLength(25, MinimumLength = 2)]
        public string Name { get; set; }
    }
}

حال اگر بخواهیم یک مثال کامل داشته باشیم، کد Model  و enum ما به صورت زیر خواهد بود


namespace Ad.NegCred.Data.Model {
    public enum DataKind {
        F,
        FA,
        FF,
        K,
        KA,
        KF
    }

    public class Datum {
        [Key]
        public long Id { get; set; }
        public DataKind Kind { get; set; }
        [StringLength(25, MinimumLength = 2)]
        public string Name { get; set; }
    }
}

حال اگر پروژه را اجرا کنید متوجه خواهید شد که فیلد enum  به دیتابیس اضافه نشده است!؟

علت؟

EF 5 و  .NET Framework 4 نمی تواند فیلد enum را ایجاد کند زمانی که System.Data.Entity.dll در .NET Framework 4 به وسیله EntityFrameork.dll استفاده می شود این کار صورت نخواهد گرفت برای حل این مشکل می بایست از EF5 و .NET Framework 4.5 با یکدیگر یا EF6 و.NET Framework 4 استفاده کنید که دیگر در اینجا (EF 6) ارتباطی با کامپوننت های داخلی NET Framework. ندارد.

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :Phone Number
0713 625 1757 :Phone Number