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

نام تاپیک: سرعت پائین در دستور SaveChanges در EF

  1. #1
    کاربر دائمی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Iran
    پست
    1,035

    سرعت پائین در دستور SaveChanges در EF

    سلام

    من بعد از Update کردن دیتا بیس وقتی دستور SaveChanges می زنم خیلی زمان طول می کشد . تعداد رکورد که می خواهم به روز کنم حدود 70 هزار رکورد است و روی رکورد مورد نظر عمل ایندکس انجام داده ام

    لازم به ذکر است و DbContext بصورت private تعریف کرده ام

    در حالی که این عمل توی SQl حدود یک ثانیه طول می کشد

    int Pubid = int.Parse(cbxFrom.SelectedValue);
    int NewPubid = int.Parse(cbxTo.SelectedValue);

    var Abstract = DbContext.tblEjournalA
    .Where(w => w.PubID == Pubid).ToList() ;
    Abstract.ForEach(u => u.PubID = NewPubid);

    var publisher =DbContext.tblEjournalP
    .Where(w => w.PubID == Pubid).ToList();
    publisher.ForEach(DbContext.DeleteObject);
    DbContext.SaveChanges();

  2. #2
    کاربر دائمی آواتار uniqueboy_ara
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    420

    نقل قول: سرعت پائین در دستور SaveChanges در EF

    من به شخصه هیچوقت از این روش استفاده نمی کنم ( تعریف Contex به صورت سراسری )
    همیشه Contex رو داخل تگ Using استفاده می کنم و هیچوقت هم مشکلی پیش نمیاد!!!
    شاید مشکل پروژه شما واسه همین باشه

  3. #3
    کاربر دائمی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Iran
    پست
    1,035

    نقل قول: سرعت پائین در دستور SaveChanges در EF

    نقل قول نوشته شده توسط uniqueboy_ara مشاهده تاپیک
    من به شخصه هیچوقت از این روش استفاده نمی کنم ( تعریف Contex به صورت سراسری )
    همیشه Contex رو داخل تگ Using استفاده می کنم و هیچوقت هم مشکلی پیش نمیاد!!!
    شاید مشکل پروژه شما واسه همین باشه
    من هم بصورت سراسری تعریف نکردم به اینصورت

    private EJournalSpicEntities _dbContext;
    public EJournalSpicEntities DbContext
    {
    get
    {
    if (_dbContext == null) _dbContext = new EJournalSpicEntities();
    return _dbContext;
    }
    }

  4. #4
    کاربر دائمی
    تاریخ عضویت
    آذر 1385
    محل زندگی
    اراک
    پست
    230

    نقل قول: سرعت پائین در دستور SaveChanges در EF

    فکر کنم دلیل این باشد که entityframework برای هر با حذف یک بار query رو اجرا می کنه ولی می تونید از روش سمت سرور استفاده کنید مانند زیر

    context.ExecuteStoreCommand("DELETE FROM YOURTABLE WHERE CustomerID = {0}", customerId);

  5. #5
    کاربر دائمی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Iran
    پست
    1,035

    نقل قول: سرعت پائین در دستور SaveChanges در EF

    نقل قول نوشته شده توسط amir3321 مشاهده تاپیک
    فکر کنم دلیل این باشد که entityframework برای هر با حذف یک بار query رو اجرا می کنه ولی می تونید از روش سمت سرور استفاده کنید مانند زیر

    context.ExecuteStoreCommand("DELETE FROM YOURTABLE WHERE CustomerID = {0}", customerId);
    تفاوت 2 دستور ExecuteStoreCommand و ExecuteStoreQuery چیست ؟

  6. #6
    کاربر دائمی
    تاریخ عضویت
    آذر 1385
    محل زندگی
    اراک
    پست
    230

    نقل قول: سرعت پائین در دستور SaveChanges در EF

    فکر کنم فرق اصلی در بازگشتی و بدون بازگشت بودن اونهاست یعنی در query شما باید نوع برگشتی رو مشخص کنید ولی در command خیر
    context.ExecuteStoreCommand
    This command can be used to execute SQL/PSQL commands that don't return any values for e.g. insert/delete statements.

    1: using (var context = new EFRecipesEntities()) 2: { 3: context.ExecuteStoreCommand("delete from chapter10.Product"); 4: context.ExecuteStoreCommand("insert into chapter10.Product values ('Chai', 'Beverage')"); 5: }


    context.ExecuteStoreQuery<TElement>
    If you need to execute a SQL/PSQL that returns record sets then use context.ExecuteStoreQuery<TElement> where TElement can be an existing Entity in the CSDL of the EDMX file, or if the result does not map to an existing Entity in the CSDL then use context.ExecuteStoreQuery<DbDataRecord> to iterate over the columns of the returned results manually using indexers on DbDataRecord to access column values. Note that context.ExecuteStoreQuery<> returns a ObjectResult<TElement> which be iterated over only once as opposed to ObjectSet<T> or ObjectQuery<T> which can be iterated over multiple times.



    1: using (var context = new EFRecipesEntities()) 2: { 3: string sql = "select * from Chapter3.Student where Degree = @Major"; 4: var args = new DbParameter[] { new SqlParameter { ParameterName = "Major", Value = "Masters" } }; 5: var students = context.ExecuteStoreQuery<Student>(sql, args); 6: }

  7. #7

    نقل قول: سرعت پائین در دستور SaveChanges در EF

    سلام not only sqlچیست و چه خصوصیاتی داره و در کجا استفاده میشه ؟NO SQL

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

  1. سرعت پائین جستجو
    نوشته شده توسط sogoli در بخش Access
    پاسخ: 0
    آخرین پست: شنبه 07 اسفند 1389, 15:58 عصر
  2. پائین آمدن سرعت چاپ فیش پس از مدتی........
    نوشته شده توسط tayebeh در بخش VB.NET
    پاسخ: 2
    آخرین پست: دوشنبه 10 مهر 1385, 08:22 صبح
  3. چرا سرعت دانلود کردن فایلها اینقدر پائین می باشد؟
    نوشته شده توسط منصور بزرگمهر در بخش شبکه و Networking‌
    پاسخ: 3
    آخرین پست: شنبه 15 شهریور 1382, 17:12 عصر
  4. چرا سرعت دانلود کردن فایلها اینقدر پائین می باشد؟
    نوشته شده توسط منصور بزرگمهر در بخش امنیت در شبکه
    پاسخ: 3
    آخرین پست: شنبه 15 شهریور 1382, 17:12 عصر

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

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