Entity Framework -ийг ашиглах

Entity Framework -ийн талаарх өмнөх хоёр хичээлд бид технологийн талаарх ойлголт, өгөгдлийн санд уламжлалт аргачлалаар хандах програмын кодыг хийсэн. Энэ хичээлд өмнөх хичээлийн жишээг Entity Framework -ийг ашиглан хэрхэн хийхийг авч үзэцгээе. Таны ашиглаж байгаа .NET фреймворкийн хувилбарт Entity Framework -ийн арай өмнөх хувилбар байж болох талтай. Иймээс Entity Framework -ийн сүүлийн хувилбарыг Nuget механизмаар татан суулгаарай. Nuget бол төрөл бүрийн шинэчлэлүүдийн классын санг автоматаар татан суулгах систем юм.

Материалыг тусгай эрхтэй хэрэглэгч үзнэ.

request_quoteТусгай эрх авах

Мэдээлэл таалагдсан бол найзуудтайгаа хуваалцаарай.

  Нээгдсэн тоо: 439 Төлбөртэй

C# -д ердийн классуудаас гадна абстракт классууд гэж бий. Ийм классууд ямар хэрэгтэй вэ? Классууд тодорхой төрлийн обьект эсхүл биетийн ерөнхий хэвийг голдуу илэрхийлдэг. Жишээ нь машинийг төлөөлөх Car эсхүл хүнийг илэрхийлэх Person гэх мэтээр классуудыг тодорхойлоод эдгээрт тухайн обьектийг тодорхойлох талбар, шинж, аргуудыг оруулан өгч болно. Гэтэл тодорхой дүрслэлгүй зарим нэгэн зүйлүүдийг програмчлалын хэлээр илэрхийлэх хэрэгцээ гардаг. Жишээ нь яг энэ гээд хэлэх геометрийн дүрс бодитоор оршдоггүй. Тойрог, тэгш өнцөгт, квадрат гэж байдаг ч зүгээр дүрс гэж байхгүй. Гэхдээ тойрог, тэгш өнцөгтүүдэд зарим нэгэн ерөнхий зүйлүүд байх бөгөөд энэ нь дүрс юм. Тодорхой биелэлгүй үүнтэй төстэй зүйлүүдийг тодорхойлоход абстракт классууд зориулагдсан.

  Нээгдсэн тоо: 343 Бүртгүүлэх

Онцгой нөхцлийг дуудсан кодийг try блок эсхүл онцгой нөхцлийг боловсруулах catch блокгүй try..catch бүтцэд байршуулсан бол систем тохирох боловсруулагчийг дуудалтын стект хайна. Жишээ нь

try
{
    TestClass.Method1();
}
catch (DivideByZeroException ex)
{
    Console.WriteLine($"Main арга дахь catch : {ex.Message}");
}
finally
{
    Console.WriteLine("Main арга дахь finally блок");
}
Console.WriteLine("Main аргын төгсгөл");
 
class TestClass
{
    public static void Method1()
    {
        try
        {
            Method2();
        }
        catch (IndexOutOfRangeException ex)
        {
            Console.WriteLine($"Method1 аргын catch: {ex.Message}");
        }
        finally
        {
            Console.WriteLine("Method1 аргын finally блок");
        }
        Console.WriteLine("Method1 аргын төгсгөл");
    }
    static void Method2()
    {
        try
        {
            int x = 8;
            int y = x / 0;
        }
        finally
        {
            Console.WriteLine("Method2 аргын finally блок");
        }
        Console.WriteLine("Method2 аргын төгсгөл");
    }
}

кодийг авч үзье.

  Нээгдсэн тоо: 457 Төлбөртэй

Програмчлалын C# хэл хатуу төрөлжилттэй тул өгөгдөлтэй ажиллах үед null утга асуудал үүсгэх тохиолдол их. Үүнийг тооцолгүй бичигдсэн код бүр ажлын /production/ хувилбараар ажиллаж байхдаа алдаа өгөх тал бий. Кодийн тестийг хийхдээ тухайн хувьсагчид null утга олгогдох тохиолдолыг тооцохгүй байх нь ийм асуудал гарах үндсэн шалтгаан хэдий ч кодлогч энэ талаар өөрөө бодон кодлох хэрэгтэй.   

null -ийн шалгалт. Null guard /хамгаалагч/

Коддоо null утга авдаг өөрөөр хэлбэл nullable төрлийн хувьсагч болон параметрүүд ашиглах болбол NullReferenceException алдаа гарахаас сэргийлэн null -ийг шалгах хэрэгтэй. Жишээ нь

void PrintUpper(string? text)
{
    if (text!=null)
    {
        Console.WriteLine(text.ToUpper());
    }    
}

Дээрх кодод text параметр null -тэй тэнцүү биш бол мөрийн тэмдэгтүүдийг том үсэг болгох ToUpper() аргыг дуудна.

  Нээгдсэн тоо: 2513 Төлбөртэй

ОХП-д классын тухай ойлголт чухал байр суурийг эзэлдэг. Иймээс классын төрлүүдийн талаар сайтар ойлгосон байх шаардлагатай. Хичээлээр бид битүүмжлэгдсэн, статик, абстракт классуудын талаар авч үзнэ. Классын эдгээр төрлүүдийг хөнгөнөөс нь хүнд рүү нь битүүмжлэгдсэн, статик, абстракт гэсэн дарааллаар судлана.

Битүүмжлэгдсэн буюу sealed класс

Классыг тэмдэглэх sealed түлхүүр үгийн орчуулга нь битүүмжлэгдсэн гэсэн байгаа юм. Орчуулга оновчтой болоогүй байж мэдэх тул sealed class гэсэн англи нэрээр нь тогтоон авбал илүү сайн. sealed түлхүүр үг юуг илэрхийлэх, хаана хэрхэн ашиглах вэ? Хэрвээ классыг sealed түлхүүр үгээр тэмдэглэсэн бол тэр эцэг класс болж болохгүй. Өөрөөр хэлбэл sealed классаас удамшуулж болохгүй. Иймээс удамшилтын гинж sealed түлхүүр үгээр тэмдэглэгдсэн класс дээр тасрах болно.

Үйл явдал /event/ тодорхой үйлдэл хийгдсэн талаар системд мэдэгддэг. Хэрвээ бид энэхүү үйлдлийг ажиглах хэрэгтэй бол яг энд…

Нээгдсэн тоо : 187

 

Манай төсөл олон хуудсуудтай болон тэдгээрийн хооронд динамикаар шилжилт хийж байгаа ч тухайн үед шилжилт хийгдсэн хуудаст тохирох…

Нээгдсэн тоо : 267

 

Зочин (Visitor) паттерн классуудыг өөрчлөхгүйгээр тэдгээрийн обьектуудын үйлдлийг тодорхойлох боломжийг олгоно. Зочин хэвийг ашиглахдаа классуудын хоёр ангилалыг тодорхойлно.…

Нээгдсэн тоо : 228

 

Лямбда-илэрхийлэл нь нэргүй аргын хураангуй бичилтийг илэрхийлнэ. Лямбда-илэрхийлэл утга буцаадаг, буцаасан утгыг өөр аргын…

Нээгдсэн тоо : 335

 

Кодийн сайжруулалт /рефакторинг/ хичээлээр програмийн кодоо react -ийн зарчимд нийцүүлэн компонентод салгасан.…

Нээгдсэн тоо : 370

 

Хадгалагч (Memento) хэв обьектын дотоод төлвийг түүний гадна гаргаж дараа нь хайрцаглалтын зарчмыг зөрчихгүйгээр обьектыг сэргээх боломжийг олгодог.

Нээгдсэн тоо : 385

 

Делегаттай нэргүй арга нягт холбоотой. Нэргүй аргуудыг делегатийн хувийг үүсгэхэд ашигладаг.
Нэргүй аргуудын тодорхойлолт delegate түлхүүр үгээр…

Нээгдсэн тоо : 455

 

Математикт харилцан урвуу тоонууд гэж бий. Ямар нэгэн тооны урвуу тоог олохдоо тухайн тоог сөрөг нэг зэрэг дэвшүүлээд…

Нээгдсэн тоо : 495

 

Төсөлд react-router-dom санг оруулан чиглүүлэгчдийг бүртгүүлэн тохируулсан Санг суулган тохируулах хичээлээр бид хуудас…

Нээгдсэн тоо : 544

 
Энэ долоо хоногт

функцийн тодорхойлогдох мужийг ол.

Нээгдсэн тоо : 962

 

g(x)=2x-3x2 нь f(x)=x2-x3 -ийн уламжлал бол -ийг ол.

Нээгдсэн тоо : 476

 

хязгаарыг ол.

Нээгдсэн тоо : 226