نمایش نتایج 1 تا 1 از 1

نام تاپیک: بازیابی داده ها در Entity Framework

  1. #1

    بازیابی داده ها در Entity Framework

    بررسی روش LINQ-to-Entities

    واژه LINQ مخفف Language-Integrated Query می باشد. این روش با استفاده از زبان LINQ که در ویژوال استودیو ۲۰۰۸ مطرح شد می‌تواند به سادگی query هایی را به دیتابیس ارسال کرده و رکوردهای مورد نظر را در قالب entity برگرداند. می توان از روش های مختلف مربوط به نوشتن دستورات LINQ برای بازیابی داده ها استفاده نمود. مثال زیر یک query ساده به روش LINQ-to-Entities را نشان می‌دهد که باعث می‌شود یک Student خاص از درون جدول مورد نظر از دیتابیس خوانده بشود. کد زیر نوشتن این کد به روش LINQ Method را نشان می‌دهد.

    [c-sharp]
    //Querying with LINQ to Entities
    using (var context = new SchoolDBEntities())
    {
    var query = context.Students
    .where(s => s.StudentName == "Bill")
    .FirstOrDefault<Student>();
    }
    [/c-sharp]




    کد زیر نوشتن این دستور به روش LINQ Query را نشان می‌دهد.

    [c-sharp]
    using (var context = new SchoolDBEntities())
    {
    var query = from st in context.Students
    where st.StudentName == "Bill"
    select st;

    var student = query.FirstOrDefault<Student>();
    }
    [/c-sharp]

    همانطور که در مثال بالا می بینید در ابتدا یک object از نوع کلاس context یعنی همان SchoolDBEntities ایجاد شده است. توصیه می شود که این object با استفاده از دستور using ایجاد بشود. تا زمانی که از scope خارج می شود به صورت خودکار dispose بشود. در این قسمت بیش از این در رابطه با LINQ-to-Entities صحبت نخواهیم نمود؛ اما در قسمت های بعدی به طور مفصل تری از آن صحبت خواهیم کرد.

    بررسی روش Entity SQL

    روش Entity SQL یک روش دیگر برای ایجاد کردن query می باشد. در استفاده از این روشObject Services مربوط به Entity Framework به صورت مستقیم مورد استفاده قرار می گیرد و به جای برگردانده شدن یک IQueryable یک ObjectQuery برگردانده می شود. به منظور انجام این کار نیز نیاز به یک ObjectContext دارید. کدی که در قسمت زیر مشاهده می کنید همان دستور بالا این بار با استفاده از روش Entity SQL را نشان می‌دهد.


    //Querying with Object Services and Entity SQL
    string sqlString = "SELECT VALUE st FROM SchoolDBEntities.Students " +
    "AS st WHERE st.StudentName == 'Bill'";

    var objctx = (ctx as IObjectContextAdapter).ObjectContext;

    ObjectQuery<Student> student = objctx.CreateQuery<Student>(sqlString);
    Student newStudent = student.First<Student>();


    علاوه بر این، می‌توانید از کلاس‌های EntityConnection و EntityCommand برای اجرا کردن دستورات Entity SQL استفاده کنید. این موضوع در کد زیر نشان داده شده است.

    [c-sharp]
    using (var con = new EntityConnection("name=SchoolDBEntities"))
    {
    con.Open();
    EntityCommand cmd = con.CreateCommand();
    cmd.CommandText = "SELECT VALUE st FROM SchoolDBEntities.Students as st where st.StudentName='Bill'";
    Dictionary<int, string> dict = new Dictionary<int, string>();
    using (EntityDataReader rdr = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.CloseConnection))
    {
    while (rdr.Read())
    {
    int a = rdr.GetInt32(0);
    var b = rdr.GetString(1);
    dict.Add(a, b);
    }
    }
    }
    [/c-sharp]
    بررسی روش Native SQL

    به سادگی می توان دستورات SQL را به صورت خام برای دیتابیس نوشت و سپس ایجاد نمود. کدی که در قسمت زیر مشاهده می کنید این موضوع را نشان می‌دهد.

    [c-sharp]
    using (var ctx = new SchoolDBEntities())
    {
    var studentName = ctx.Students.SqlQuery("Select studentid, studentname, standardId from Student where studentname='Bill'").FirstOrDefault<Student>();
    }
    [/c-sharp]



    منبع: وب سایت پرووید
    آخرین ویرایش به وسیله all_time_programmer : دوشنبه 04 بهمن 1400 در 15:48 عصر

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

  1. مدیریت درخواست های زیاد به برنامه در Entity Framework
    نوشته شده توسط spyknight2004 در بخش ASP.NET MVC
    پاسخ: 12
    آخرین پست: دوشنبه 26 آذر 1397, 18:25 عصر
  2. تفاوت entity framework ، linq to entity و Entity Framework Code First
    نوشته شده توسط negar.rafie در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 1
    آخرین پست: دوشنبه 24 آذر 1393, 10:43 صبح
  3. تفاوت entity framework با linq to entity
    نوشته شده توسط negar.rafie در بخش C#‎‎
    پاسخ: 9
    آخرین پست: شنبه 22 آذر 1393, 08:48 صبح
  4. پیدا کردن زیر گروه ها با entity framework
    نوشته شده توسط na3er-faraji در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 0
    آخرین پست: یک شنبه 08 بهمن 1391, 19:55 عصر

برچسب های این تاپیک

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

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