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

نام تاپیک: insert with max value another field

  1. #1
    کاربر دائمی آواتار hamzehsh
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    https://samanhis.ir
    سن
    42
    پست
    166

    insert with max value another field

    سلام
    من یک جدول دارم که یک فیلد اختصاصی شمارنده داره
    طبق یک قانونی این شمارنده بروزرسانی میشه و در رکوردهای جدید ذخیره میشه
    توی نرم افزارهای مالی شبیه شماره سند هست
    که مستقل از id داره ذخیره میشه و عدد ثابت یا سریالی نداره.

    در ef core ایا راهی هست که بشه این فیلد را در زمان درج مقدار دهی کرد؟
    مثلا در نوع عددی max را بگیرد و یک عددی بهش اضافه بکند

    در حال حاضر بعد از insert دارم id را میگیرم
    بعد max میگیرم
    بر اساس id این مقدار را به روز میکنم که فرایند صحیحی نیست
    راه حل جایگزینی وجود دارد؟


    public class Documents
    {
    public int id {get; set;}
    public string formula {get;set;} // فیلد سفارشی شمارنده
    public string name {get;set;}
    ...
    }



  2. #2
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,645

    نقل قول: insert with max value another field

    سلام ب همه.
    این تابع رو ببیند کارش همینه:

    #5

  3. #3
    کاربر دائمی آواتار hamzehsh
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    https://samanhis.ir
    سن
    42
    پست
    166

    نقل قول: insert with max value another field

    دو تا راه کار بهش رسیدم که الان دارم استفاده میکنم
    هر دوتاش مناسب هست مزایا و معایب رو هم میگم
    جهت استفاده یا ایده برای بقیه
    راهکار اول
    یک مقدار 1000 تای شماره رو cache میکنم بر اساس فیلدهایی که میخواهم
    الان 4 تا فیلد دارم 4 * 1000 این مقادیر را اختصاص میدم و نگهداری میکنم
    هر بار که رکوردی ایجاد میشود از آن مقدار 1000 تایی ها به تعداد نیاز برمیدارم تا زمانی که به صفر میرسم.
    عملا cache حذف میشه و اخرین مقدار دریافت میشه و ....
    در نتیجه تکراری یا اختلال ندارم

    *** معایب استفاده از حافظه سرور Ram چون محدودیت داریم، سربار تولید شناسه ها بر اساس فرمول، مزایا اطمینان بیشتر و سرعت بالاتر

    روش دوم که به فکرم رسید در هر بار ایجاد

    از طریق context هر جا لازم بود آخرین رکورد را میخوانم و همزمان formula را مقدار دهی میکنم
    context.Documents.max(c=>c.formula) اختصاص مقدار جدید و
    بعد رکورد اضافه میشود.

    *** معایب ارجاع های متوالی برای بدست آوردن مقادیر رکوردهای سرور پایگاه داده، احتمال مقدار تکراری یا تداخلی (نزدیک به صفر ولی صفر نمیشود)، مزایا عدم استفاده از حافظه سرور App ، جلوگیری از سربار اضافی تولید شناسه

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

  1. پاسخ: 16
    آخرین پست: پنج شنبه 27 تیر 1392, 10:39 صبح
  2. The types of the parameter field and parameter field current values are not compatibl
    نوشته شده توسط m_zamani در بخش گزارش سازی با Crystal Report
    پاسخ: 1
    آخرین پست: سه شنبه 28 خرداد 1392, 09:39 صبح
  3. سوال: Insert data in longtext datatype field
    نوشته شده توسط s_keivani در بخش PHP
    پاسخ: 7
    آخرین پست: چهارشنبه 17 شهریور 1389, 14:23 عصر
  4. A field initializer cannot reference the nonstatic field, method, or property...
    نوشته شده توسط Programmer.G در بخش C#‎‎
    پاسخ: 2
    آخرین پست: چهارشنبه 02 بهمن 1387, 08:24 صبح
  5. فرق Template field با Command field در گریدویو
    نوشته شده توسط odiseh در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: پنج شنبه 10 آبان 1386, 17:55 عصر

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

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