دسته بندی ها
11:22 1399/11/25
خطای The data reader has more than one field error در انتیتی فریم ورک
من از سی شارپ Entity Framework و مدل DB First استفاده میکنم.
من باید فقط بخشی از اطلاعات یک جدول رو سِلِکت کنم یا باید ویو بسازم یا کلش رو توی کویری درخواست بدم
مساله اینه من نمیخوام ویو بسازم میخوام با SQL Query بخشی از اطلاعات یک جدول رو بگیرم.
متن خطا
System.Data.Entity.Core.EntityCommandExecutionException: 'The data reader has more than one field. Multiple fields are not valid for EDM primitive or enumeration types.'
var quer_Sumfactor5 = dbms.Database.SqlQuery<INVO_LST>("SELECT SUM(MEGHk) AS Meghksm, SUM(MABL_K) AS Mablksm, SUM(N_MOIN) AS N_MOINSM, SUM(IMBAA) AS IMBAAsm FROM INVO_LST WHERE(TAG = 2) AND (NUMBER = " + TextB_Number.Text + ")").ToList();
چطور اینکار رو بکنم لطفا راهنمایی کنید
باتشکر
لینک : How do I get the result of an SQL query in entity framework C# DB first
ویرایش شده در چهارشنبه 22 اسفند 1403 ساعت 11:11:39
مشخصات سوال کننده :
کاربر : MohammadH
امتیاز کاربر : 18
رتبه کاربر : 40
به این سوال امتیاز بدهید
0
تعداد بازدید این سوال : 4406
2 نظر
fateme :
شما کوئری خودتون رو عینا کپی کنید و توی Sql اجرا کنید. ببینید اونجا جواب میده ؟ اگر توی Sql جواب داد اون موقع به این فکر کنید که چجوری توی انتیتی فریم ورک اجرا بشه. چون شما از دستور Sum استفاده کردید و فکر مکینم به همراه Sum باید Group By هم باشه. احتمالا کوئری شما مشکل داره.
امتیاز کاربر : 1617
رتبه کاربر : 2
تاریخ ثبت : 03:58 1399/11/25
MohammadH :
آره ببینید کوئری در اس کیو ال کامل اجرا میشه ولی ظاهرا انتیتی فریموک جوریه که باید حتما کلا اطلاعات جدول رو درخواست بدی , امکان اینکه تکی مثلا یک ستون رو بخوای نمیشه !
امتیاز کاربر : 18
رتبه کاربر : 40
تاریخ ثبت : 04:39 1399/11/25
پاسخ دهنده : hamid_b
15:54 1399/11/25
دلیل خطای The data reader has more than one field error در انتیتی فریم ورک
بنظرم بهتره از دستور ExcecuteStoreCommand استفاده کنی :
var quer_Sumfactor5 = dbms.ExecuteStoreCommand("SELECT SUM(MEGHk) AS Meghksm, SUM(MABL_K) AS Mablksm, SUM(N_MOIN) AS N_MOINSM, SUM(IMBAA) AS IMBAAsm FROM INVO_LST WHERE(TAG = 2) AND (NUMBER = " + TextB_Number.Text + ")").ToList();
2 نظر
MohammadH :
متشکرم ولی چرا انتیتی فریمورک نمیذاره ستون مشخص رو Select کنی ؟
تست کردم اومدم تک به تک خطا های ستون های این جدول ره که میداد
به Select ام اضافه کردم
تا رسید به همه ستون ها یعنی Select * From ایندفعه بدون خطا آورد
یعنی نمیذاره یک ستون رو درخواست بدی !
امتیاز کاربر : 18
رتبه کاربر : 40
تاریخ ثبت : 04:41 1399/11/25
MohammadH :
این دستور رو نتونستم استنفاده کنم خودتون تست کنید
امتیاز کاربر : 18
رتبه کاربر : 40
تاریخ ثبت : 05:39 1399/11/25
پاسخ دهنده : MohammadH
17:26 1399/11/25
لطفا این لینک ها رو برای اطلاع بیشتر ملاحظه بفرمایید
https://stackoverflow.com/questions/66185837/how-do-i-select-specify-or-multi-column-with-sqlquery-in-c-sharp-wpf-entity-fr
https://www.quora.com/unanswered/How-do-you-select-specify-or-multi-column-with-SQLQuery-in-C-WPF-Entity-Framework
باتشکر از لطف شما
ویرایش شده در دوشنبه 27 بهمن 1399 ساعت 09:01:51
4 نظر
fateme :
یکی از لینکهاتون کار نمیکنه. چرا شما برای نوشتن این کوئری از دستورات Linq استفاده نمی کنید ؟ بنظرم بهتره از Linq استفاده کنید و این همه خودتون رو درگیر دستورات SqlCommand نکنید.
امتیاز کاربر : 1617
رتبه کاربر : 2
تاریخ ثبت : 03:44 1399/11/26
MohammadH :
SQL Query راحتره و اینکه در مواردی نسبت به LINQ بهتر عمل مکینه مخصوصا توی کوئری های پیچیده
امتیاز کاربر : 18
رتبه کاربر : 40
تاریخ ثبت : 09:02 1399/11/27
fateme :
استفاده از دستورات Sql در انتیتی فریم ورک در نگاه اول چون مستقیما از خود Sql استفاده می کنید ساده است. اما قابلیت های خوبی توی انتیتی فریم ورک برای استفاده از این دستورات فراهم نیست. نمونه اش همین کوئری خودتون که در Sql Server کار میکنه ولی اینجا کار نمیکنه. شما خیلی راحت می تونید همین کوئری رو با دستور Linq بنویسید. سینتکس خیلی ساده ای هم داره.
امتیاز کاربر : 1617
رتبه کاربر : 2
تاریخ ثبت : 11:05 1399/11/27
MohammadH :
متشکرم , ممنون میشم LINQ همین کوئری رو لطف بفرمایید
امتیاز کاربر : 18
رتبه کاربر : 40
تاریخ ثبت : 11:23 1399/11/27
آخرین سوالات ثبت شده
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
سوالات مرتبط
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- حذف کامل یک رکورد در جدول ریلیشن شده
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- مقایسه ساختار دو دیتابیس در Sql Server
- اشکال در ایجاد کلید خارجی در Sql Server
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.
 
ورود