مشاهده دست آورد نظرسنجی: دوستم نظرت در مورد آموزش چطور بود؟

رای دهنده
98. شما نمی توانید در این رای گیری رای بدهید
  • خوب بود

    82 83.67%
  • بدرد بخور بود

    14 14.29%
  • بدرد بخور نبود

    1 1.02%
  • بد بود

    1 1.02%
نمایش نتایج 1 تا 40 از 59

نام تاپیک: آموزش استفاده از Entity Framework در معماری 3 لایه - همراه با مثال عملی

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #2
    کاربر دائمی آواتار mohsen_f_b
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تهران
    سن
    35
    پست
    401

    آموزش استفاده از Entity Framework در معماری 3 لایه - همراه با مثال عملی

    سلام دوستان عزیز
    نمی دونم بخش اول آموزش چطور بود.
    ببخشید که کمتر توضیح دادم، سعی کردم همش با عکس باشه که درکش راحت تر باشه.
    آموزش که کامل شد در مورد این نحوه برنامه نویسی باهم گفتگو می کنیم.
    در ضمن دارم 2 مدل دیگه از این نوع برنامه نویسی رو آماده می کنم که انشالله در ادامه این سرسی آموزش براتون قرار میدم.
    خوب بریم با هم Business Logic Layer رو طراحی کنیم.
    دیشب بیشتر راه رو رفتیم و شما هم تمرین کردین و حالا سرحال شروع می کنیم.

    قدم پنجم : ساخت Business Logic Layer
    1- پروژه رو باز کنید
    2- حالا باید یک پروژه جدید به همین Solution اضافه کنیم که اسمش هم میزاریم PersonBLL
    لطفا مراحل رو با عکس پیش برین



    3- حالا شما لایه Business Logic Layer به Data Access Layer متصل کنید. شما می دانید که هر لایه فقط با لایه بالای و پایینی خود می توانه ارتباط برقرار کنه.
    خوب برای این کار مراحل رو همراه با عکس انجام بدین
    بروی References کلیک راست می کنیم و از تب Project نام پروژه PersonDAL رو انتخاب می کنیم




    4- دوباره بر روی Referencs کلیک راست کرده و از تب .NET گزینه System.Data.Entity رو انتخاب می کنیم


    5- حالا یک کلاس درست کنید با نام ContactEO


    6- حالا در صفحه کلاس 2 تا NameSpase باید Add کنیم
    using System.Collections;
    using PersonDAL;

    7- حالا شروع می کنیم به کد نویسی در بدنه کلاس
    یادم رفت بگم که قبل از شروع حتما
    class ContactEO


    را به
    public class ContactEO

    تغییر بدین.
    دیدین داشت یادم میرفت بگم.
    حالا تمام مقادیر و موجودیت ها رو تعریف می کنیم.

    public int Id { get; set; }
    public string Name { get; set; }
    public string Family { get; set; }
    public string Mobile { get; set; }
    public DateTime InsertDate { get; set; }
    public DateTime UpdateDate { get; set; }

    بعدش یک تابع تعریف می کنیم که نام و نام خانوادگی رو کنار هم قرار بده و بعنوان یک خروجی برای ما بصورت FullName

    public string FullName
    {
    get
    {
    return Name + ", " + Family;
    }
    }

    حالا برای عملیات ثبت و ویرایش برای مقادیر یک Validation میزاریم که چک کنه مقادیر حتما وارد شده است.

    private void ValidateSave(ref ArrayList validationErrors)
    {
    if (Name.Trim() == "")
    {
    validationErrors.Add("نام خالی وارد شده");
    }

    if (Family.Trim() == "")
    {
    validationErrors.Add("نام خانوادگی خالی وارد شده");
    }

    if (Mobile.Trim() == "")
    {
    validationErrors.Add("تلفن همراه خالی وارد شده");
    }
    }

    بعدش نوبت به این میرسه کد عملیات های Insert و Update رو بنویسیم

    public bool Save(ref ArrayList validationErrors)
    {
    ValidateSave(ref validationErrors);

    if (validationErrors.Count == 0)
    {
    if (Id == 0)
    {
    Id = ContactData.Insert(Name, Family, Mobile, InsertDate);
    }
    else
    {
    ContactData.Update(Id, Name, Family, Mobile, UpdateDate);
    }
    return true;
    }
    else
    {
    return false;
    }
    }

    دوستان کدها کاملا ساده نوشته شده بازم هرجاش واستون نا مفهموم هستش بگین کامل توضیح بدم
    تا اینجا موفق شدیم هر 2 عملیات رو کنترل و با موفقیت انجام بدیم.
    این کد هم برای DELETE استفاده می کنیم

        public void Delete()
    {
    ContactData.Delete(Id);
    }


    حالا برای اینکه یک رکورد رو برگردانیم و ازش استفاده کنیم از کد زیر استفاده می کنیم

    internal void MapData(Contact contact)
    {
    Id = contact.ID;
    Name = contact.Name;
    Family = contact.Family;
    Mobile = contact.Mobile;
    InsertDate = contact.InsertDate.Value;
    UpdateDate = contact.UpdateDate.Value;

    }
    public bool Select(int id)
    {
    Contact contact = ContactData.SelectById(id);

    if (contact != null)
    {
    MapData(contact);
    return true;
    }
    else
    {
    return false;
    }
    }

    و در آخر این تابع که کل رکوردها رو در یک شی لیست برمیگرداند

    public static List<ContactEO> SelectAll()
    {
    List<ContactEO> contacts= new List<ContactEO>();

    List<Contact> contactDTOs = ContactData.SelectAll();

    foreach (Contact contactDTO in contactDTOs)
    {
    ContactEO ContactEO = new ContactEO();
    ContactEO.MapData(contactDTO);
    contacts.Add(ContactEO);
    }

    return contacts;
    }

    در آخر کلاس مربوطه به شکل زیر میشه

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Collections;
    using PersonDAL;

    namespace PersonBLL
    {
    public class ContactEO
    {
    public int Id { get; set; }
    public string Name { get; set; }
    public string Family { get; set; }
    public string Mobile { get; set; }
    public DateTime InsertDate { get; set; }
    public DateTime UpdateDate { get; set; }

    public string FullName
    {
    get
    {
    return Name + ", " + Family;
    }
    }
    private void ValidateSave(ref ArrayList validationErrors)
    {
    if (Name.Trim() == "")
    {
    validationErrors.Add("نام خالی وارد شده");
    }

    if (Family.Trim() == "")
    {
    validationErrors.Add("نام خانوادگی خالی وارد شده");
    }

    if (Mobile.Trim() == "")
    {
    validationErrors.Add("تلفن همراه خالی وارد شده");
    }
    }
    public bool Save(ref ArrayList validationErrors)
    {
    ValidateSave(ref validationErrors);

    if (validationErrors.Count == 0)
    {
    if (Id == 0)
    {
    Id = ContactData.Insert(Name, Family, Mobile, InsertDate);
    }
    else
    {
    ContactData.Update(Id, Name, Family, Mobile, UpdateDate);
    }
    return true;
    }
    else
    {
    return false;
    }
    }

    public void Delete()
    {
    ContactData.Delete(Id);
    }

    internal void MapData(Contact contact)
    {
    Id = contact.ID;
    Name = contact.Name;
    Family = contact.Family;
    Mobile = contact.Mobile;
    InsertDate = contact.InsertDate.Value;
    UpdateDate = contact.UpdateDate.Value;

    }
    public bool Select(int id)
    {
    Contact contact = ContactData.SelectById(id);

    if (contact != null)
    {
    MapData(contact);
    return true;
    }
    else
    {
    return false;
    }
    }

    public static List<ContactEO> SelectAll()
    {
    List<ContactEO> contacts= new List<ContactEO>();

    List<Contact> contactDTOs = ContactData.SelectAll();

    foreach (Contact contactDTO in contactDTOs)
    {
    ContactEO ContactEO = new ContactEO();
    ContactEO.MapData(contactDTO);
    contacts.Add(ContactEO);
    }

    return contacts;
    }
    }
    }


    و حالا پروژه را Save کنید
    این هم از Business Logic Layer.
    دیدن تا اینجا کاری نداشت، بزودی هم UI رو باهم می نویسیم.
    دوستان اگر توضیح ندادم زیاد بخاطر اینکه تمام مفاهیم ساده هستش. از دوستان هر کس مشکل داشت در کدها سوال کنه جواب گو هستیم.

    نظرتون تا اینجا چیه؟ خوب بوده؟!ساده هستش یا سخته؟!

    باتشکر از تمامی دوستان
    به امید موفقیت ایران و ایرانی

    ادامه دارد ...
    آخرین ویرایش به وسیله mohsen_f_b : دوشنبه 25 اردیبهشت 1391 در 22:59 عصر دلیل: اضافه کردن متن

تاپیک های مشابه

  1. پاسخ: 25
    آخرین پست: سه شنبه 10 تیر 1393, 00:14 صبح
  2. مشکل در استفاده از Entity Framework در معماری لایه ای
    نوشته شده توسط Mohsen_IS در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: یک شنبه 24 اردیبهشت 1391, 23:51 عصر
  3. جایگاه Entity Framework در معماری 3 لایه
    نوشته شده توسط reza344 در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 4
    آخرین پست: سه شنبه 20 دی 1390, 07:35 صبح
  4. جایگاه Entity Framework در معماری 3 لایه
    نوشته شده توسط reza344 در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: دوشنبه 19 دی 1390, 21:57 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •