دسته بندی ها
02:43 1401/04/09

استفاده از Distinct برای List توسط Entity Framework در C#

مشخصات سوال کننده :
کاربر : hamid_b     امتیاز کاربر : 510     رتبه کاربر : 4
دسته بندی : سی شارپ Entity Framework

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2855
پاسخ دهنده : mmr1401 16:21 1401/04/09

سلام

Distinct براساس ستون مشخصی عمل میکنه. به عبارت دیگه شما برای Distinct مشخص نکردی براساس کدوم ستون عمل کنه و تکراری ها رو شمارش نکنه. شما یا باید برای این دستور نام ستون موردنظرت رو بگی و یا حتی شما میتونی یه select  براساس costomerid بزنی و بعد روی نتیجه این select  دستورDistinct رو اجرا کنی.

ویرایش شده در پنج شنبه 9 تیر 1401 ساعت 16:32:35
به این پاسخ امتیاز بدهید    1
امتیاز: 45 رتبه: 19
پاسخ دهنده : saedbfd 20:22 1401/04/10

حذف رکوردهای تکراری توسط دستور Distinct

برای استفاده از دستور Distinct در انتیتی فریم ورک یا باید بر اساس یک ستون این کار رو انجام بدید یا اینکه اگر بر اساس کل سطرها (بر اساس انتیتی) می خواید این کار انجام بشه باید سطرها دارای اطلاعات تکراری باشن.

الان در تصویری که شما از اطلاعات خودتون ارسال کردید درسته که customerId ها تکراری هستن ولی orderDate ها یکسان نیستن.

 

استفاده از دستور Distinct در سی شارپ بر اساس یک ستون مشخص

دستور شما به صورت زیر باید تبدیل بشه :

var model = _Context.orders.Select(s => s.customerId).Distinct().ToList();

با اجرا کوئری بالا شما فقط customerId هایی که تکراری نیستن رو خواهید داشت.

استفاده از distinct در سی شارپ

دقت کنید اگر بر اساس بیش از یک ستون هم خواستید اطلاعات رو داشته باشید می تونید به صورت زیر انجام بدید.(فرض کنید در خدول order ستون CustomerName و CustomerTel هم دارید.

var model = _Context.orders.Select(s => new {customerId = s.customerId , customerName = s.customerName, customeTel = s.customerTel}).Distinct().ToList();

 

ویرایش شده در جمعه 10 تیر 1401 ساعت 20:48:08
به این پاسخ امتیاز بدهید    0
امتیاز: 1654 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود