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

نام تاپیک: کوئری استرینگ با ENTITY FRAMEWORK

  1. #1

    کوئری استرینگ با ENTITY FRAMEWORK

    سلام- یک webapi در محیط asp.net mvc4 دارم که به شیوه entitiyframework با پایگاه داده در ارتباطه.
    یک دستور select بصورت زیر دارم که بعد از اجرا جواب رو نمیاره و پیغام خطاش اینه :
    ora-00932:inconsistent datatypes:expected NCHAR got NCLOB

    اینم از دستوراتی که اجرا میشن:

    public IEnumerable<Milad.Models.DomainModels.A_LASTNOBAT> GetGis(string id)
    {

    var model3 = blnobat.Select().OrderBy(p => p.A_NOBAT).Where(p => p.A_COUNTERNO.Value.ToString().Contains(id));
    return (model3).Tostring();
    }



    ضمنا فیلد A_COUNTERNO در دیتابیس از نوع number هستش.
    ممنون از راهنماییتون

  2. #2

    نقل قول: کوئری استرینگ با ENTITY FRAMEWORK

    var model3 = blnobat.Where(p => p.A_COUNTERNO.Value.ToString().Contains(id)).Selec  t(p=>p.A_NOBAT).OrderBy(p => p.A_NOBAT);


  3. #3

    نقل قول: کوئری استرینگ با ENTITY FRAMEWORK



    var model3 = blnobat.Where(p => p.A_COUNTERNO.Value.ToString().Contains(id)).Selec t(p=>p.A_NOBAT).OrderBy(p => p.A_NOBAT);







    سلام- فرقی نکرد هنوزم همون خطا رو میده. ضمن اینکه از orderby آخر دستور هم ایراد میگیره...

  4. #4

    نقل قول: کوئری استرینگ با ENTITY FRAMEWORK

    دوستان کسی نظری نداره ؟

  5. #5

    نقل قول: کوئری استرینگ با ENTITY FRAMEWORK

    orderby رو حذف کن ببین پیغام خطاش فرق میکنه؟

  6. #6

    نقل قول: کوئری استرینگ با ENTITY FRAMEWORK

    نقل قول نوشته شده توسط a.golzar66 مشاهده تاپیک
    orderby رو حذف کن ببین پیغام خطاش فرق میکنه؟
    این کارم کردم ولی فایده ای نداشت:

    var model3 = blnobat.Select().Where(p => p.A_COUNTERNO.Value.ToString().Contains(id));


    همین پیغام خطا رو میده:

    ORA-00932: inconsistent datatypes: expected NCHAR got NCLOB

  7. #7

    نقل قول: کوئری استرینگ با ENTITY FRAMEWORK

    دستور select چیه کارش اونم حذف کن ببین کد راه میده

  8. #8

    نقل قول: کوئری استرینگ با ENTITY FRAMEWORK

    نقل قول نوشته شده توسط a.golzar66 مشاهده تاپیک
    دستور select چیه کارش اونم حذف کن ببین کد راه میده
    خب من میخوام یه تعداد رکورد رو از دیتابیس select کنم.اگه اونو بردارم که دیگه دستوری باقی نمیمونه!

  9. #9

    نقل قول: کوئری استرینگ با ENTITY FRAMEWORK

    وقتی Where دارید نیاز به Select ندارید.

  10. #10

    نقل قول: کوئری استرینگ با ENTITY FRAMEWORK

    فکر کنم باید از دستور ToList استفاده کنی و اخر خط هم باید بنویسی نه وسطش

  11. #11
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: کوئری استرینگ با ENTITY FRAMEWORK

    ابتدا کوئریتون بدون SELECT و WHERE و ORDER BY اجرا کنید اگر به خطا برخورد کردید ممکنه فیلدی در دیتابیس از نوع NCLOB باشه و سمت calss های POCO شما از نوع string تعریف کرده باشید و خطای مربوط به مپ کردن فیلدها باشه و این خطا ربطی به شرط where نداشته باشه
    و اگر اینجور بود تنظیمات کلاس های EF رو در برنامه تغییر بدید
    آخرین ویرایش به وسیله ali_md110 : سه شنبه 24 بهمن 1396 در 18:01 عصر

  12. #12

    نقل قول: کوئری استرینگ با ENTITY FRAMEWORK

    نقل قول نوشته شده توسط ali_md110 مشاهده تاپیک
    ابتدا کوئریتون بدون SELECT و WHERE و ORDER BY اجرا کنید اگر به خطا برخورد کردید ممکنه فیلدی در دیتابیس از نوع NCLOB باشه و سمت calss های POCO شما از نوع string تعریف کرده باشید و خطای مربوط به مپ کردن فیلدها باشه و این خطا ربطی به شرط where نداشته باشه
    و اگر اینجور بود تنظیمات کلاس های EF رو در برنامه تغییر بدید
    با تشکر از همگی
    کوئری را بدون select , orderby تست کردم خطای اول سر جاشه. ضمن اینکه این کوئری فقط با فیلدهای number(int) این خطا رو میده یعنی اگه بنده فیلدی که در این دستور داره جستجو میشه(A_COUNTERNO) بردارم و بجاش یک فیلدی که داخل دیتابیس از نوع varchar هست بذارم درست کار میکنه.
    در خصوص مپ بودن نوع فیلد A_COUNTERNO در دیتابیس اوراکل number با طول 10 هستش و کلید اصلی نیست. داخل کلاس EF هم بصورت زیره:

    public Nullable<int> A_COUNTERNO { get; set; }


    والا دیگه موندم علت خطاش چیه؟

  13. #13
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: کوئری استرینگ با ENTITY FRAMEWORK

    ممکنه پروایدر اوراکل با روش dbfirst این مشکلات رو داشته باشه فیلد number بشتر از 22 بایت نمیتونه بپذیره در صورتیکه varchar تا 4k هم فضا میگیره
    و یا ممکنه این تبدیل به toString مشکلات شما باشه
    ابتدا مقدار Contains(id) رو دستی ست کنید

    بجای id یک مقدار واقعی درون دیتابیس قرار بدید

    Where(p => p.A_COUNTERNO.Value==id));


    در ضمن شما چرا فیلد درون دیتابیس رو دارید کاست میکنید ؟

    p.A_COUNTERNO.Value.ToString()

    بجای اون پارامتر ورودی رو به عدد کاست کنید


    این لینک ها رو هم ببینید
    https://stackoverflow.com/questions/32271718/oracle-entity-framework-call-custom-function-edit-distance
    و
    https://stackoverflow.com/questions/...b-on-oracle-db





  14. #14

    نقل قول: کوئری استرینگ با ENTITY FRAMEWORK

    نقل قول نوشته شده توسط ali_md110 مشاهده تاپیک
    ممکنه پروایدر اوراکل با روش dbfirst این مشکلات رو داشته باشه فیلد number بشتر از 22 بایت نمیتونه بپذیره در صورتیکه varchar تا 4k هم فضا میگیره
    و یا ممکنه این تبدیل به toString مشکلات شما باشه
    ابتدا مقدار Contains(id) رو دستی ست کنید

    بجای id یک مقدار واقعی درون دیتابیس قرار بدید

    Where(p => p.A_COUNTERNO.Value==id));


    در ضمن شما چرا فیلد درون دیتابیس رو دارید کاست میکنید ؟

    p.A_COUNTERNO.Value.ToString()

    بجای اون پارامتر ورودی رو به عدد کاست کنید


    این لینک ها رو هم ببینید
    https://stackoverflow.com/questions/32271718/oracle-entity-framework-call-custom-function-edit-distance
    و
    https://stackoverflow.com/questions/...b-on-oracle-db



    خیلی لطف کردید.سپاسگزارم. حق با شماست . کوئری خروجی داد.
    به همین صورت اصلاح کردم، هم با select هم بدون select جواب میده:

    var model3 = blnobat.select().Where(p => p.A_COUNTERNO.Value == id).ToList();


    وروردی تابع هم بجای استرینگ از نوع int قرار دادم.

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

  1. متغیر مخصوص برای نگه داری مقادیر کوئری زدن با entity
    نوشته شده توسط a.golzar66 در بخش ASP.NET MVC
    پاسخ: 3
    آخرین پست: چهارشنبه 09 دی 1394, 22:05 عصر
  2. سوال: نحوه ارسال کوئری استرینگ با dropdownlist
    نوشته شده توسط crazy_1892 در بخش ASP.NET MVC
    پاسخ: 3
    آخرین پست: یک شنبه 05 شهریور 1391, 11:20 صبح
  3. ارتباط با کوئری استرینگ با یک برنامه بیرونی
    نوشته شده توسط mammad_asir در بخش PHP
    پاسخ: 1
    آخرین پست: چهارشنبه 21 دی 1390, 12:16 عصر
  4. ارتباط با کوئری استرینگ با یک برنامه بیرونی مثل سیشارپ
    نوشته شده توسط mammad_asir در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: چهارشنبه 21 دی 1390, 09:52 صبح
  5. چگونه کوئری استرینگ با هایپرلینک بفرستیم !
    نوشته شده توسط merlin_vista در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: سه شنبه 17 مهر 1386, 14:46 عصر

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

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

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