ฉันจะทำSQL
แบบสอบถามนี้ได้Entity Framework
อย่างไร?
SELECT DISTINCT NAME FROM TestAddresses
ฉันจะทำSQL
แบบสอบถามนี้ได้Entity Framework
อย่างไร?
SELECT DISTINCT NAME FROM TestAddresses
คำตอบ:
ใช้แลมด้านิพจน์ ..
var result = EFContext.TestAddresses.Select(m => m.Name).Distinct();
ลองสิ่งนี้:
var results = (from ta in context.TestAddresses
select ta.Name).Distinct();
สิ่งนี้จะทำให้คุณIEnumerable<string>
- คุณสามารถโทรหา.ToList()
เพื่อรับไฟล์List<string>
.
วิธีที่@alliswellแสดงนั้นใช้ได้อย่างสมบูรณ์และมีอีกวิธีหนึ่ง! :)
var result = EFContext.TestAddresses
.GroupBy(ta => ta.Name)
.Select(ta => ta.Key);
ฉันหวังว่ามันจะเป็นประโยชน์กับใครบางคน
DBContext.TestAddresses.Select(m => m.NAME).Distinct();
หากคุณมีหลายคอลัมน์ให้ทำดังนี้:
DBContext.TestAddresses.Select(m => new {m.NAME, m.ID}).Distinct();
ในตัวอย่างนี้ไม่มี CategoryId ซ้ำกันและไม่มี CategoryName ฉันหวังว่านี่จะช่วยคุณได้
Entity-Framework เลือกชื่อที่แตกต่าง:
สมมติว่าคุณใช้มุมมองที่คุณใช้หลายตารางและคุณต้องการใช้ความแตกต่างในกรณีนั้นก่อนอื่นคุณต้องเก็บค่าในตัวแปรจากนั้นคุณสามารถใช้ความแตกต่างกับตัวแปรนั้นได้เช่นนี้ ...
public List<Item_Img_Sal_VIEW> GetItemDescription(int ItemNo)
{
var Result= db.Item_Img_Sal_VIEW.Where(p => p.ItemID == ItemNo).ToList();
return Result.Distinct().ToList();
}
หรือคุณสามารถลองใช้ตัวอย่างง่ายๆนี้
Public Function GetUniqueLocation() As List(Of Integer)
Return db.LoginUsers.Select(Function(p) p.LocID).Distinct().ToList()
End Function
ใช้ Select ()
ตัวอย่างเช่นDistinct ()
DBContext db = new DBContext();
var data= db.User_Food_UserIntakeFood .Select( ).Distinct();
เพื่อหลีกเลี่ยงORDER BY items must appear in the select list if SELECT DISTINCT
ข้อผิดพลาดควรจะดีที่สุด
var results = (
from ta in DBContext.TestAddresses
select ta.Name
)
.Distinct()
.OrderBy( x => 1);
Entity-Framework เลือกชื่อที่แตกต่าง:
สมมติว่าคุณต้องการทุกข้อมูลแรกของคอลัมน์เฉพาะของแต่ละกลุ่ม
var data = objDb.TableName.GroupBy(dt => dt.ColumnName).Select(dt => new { dt.Key }).ToList();
foreach (var item in data)
{
var data2= objDb.TableName.Where(dt=>dt.ColumnName==item.Key).Select(dt=>new {dt.SelectYourColumn}).Distinct().FirstOrDefault();
//Eg.
{
ListBox1.Items.Add(data2.ColumnName);
}
}