Câu trả lời:
Sử dụng biểu thức lambda ..
var result = EFContext.TestAddresses.Select(m => m.Name).Distinct();
Thử cái này:
var results = (from ta in context.TestAddresses
select ta.Name).Distinct();
Điều này sẽ cung cấp cho bạn một IEnumerable<string>
- bạn có thể gọi .ToList()
nó để có được một List<string>
.
Cách mà @alliswell thể hiện là hoàn toàn hợp lệ, và có một cách khác! :)
var result = EFContext.TestAddresses
.GroupBy(ta => ta.Name)
.Select(ta => ta.Key);
Tôi hy vọng nó sẽ hữu ích cho ai đó.
DBContext.TestAddresses.Select(m => m.NAME).Distinct();
nếu bạn có nhiều cột làm như thế này:
DBContext.TestAddresses.Select(m => new {m.NAME, m.ID}).Distinct();
Trong ví dụ này không có CategoryId trùng lặp và không có CategoryName tôi hy vọng điều này sẽ giúp bạn
Entity-Framework Chọn Tên riêng biệt:
Giả sử nếu bạn đang sử dụng Chế độ xem trong đó bạn đang sử dụng nhiều bảng và bạn muốn áp dụng riêng biệt trong trường hợp đó trước tiên, bạn phải lưu trữ giá trị trong biến & sau đó bạn có thể áp dụng Phân biệt trên biến đó như thế này ....
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();
}
Hoặc bạn có thể thử ví dụ đơn giản này
Public Function GetUniqueLocation() As List(Of Integer)
Return db.LoginUsers.Select(Function(p) p.LocID).Distinct().ToList()
End Function
sử dụng Chọn ().
Ví dụ ()
DBContext db = new DBContext();
var data= db.User_Food_UserIntakeFood .Select( ).Distinct();
Để tránh ORDER BY items must appear in the select list if SELECT DISTINCT
lỗi, tốt nhất nên là
var results = (
from ta in DBContext.TestAddresses
select ta.Name
)
.Distinct()
.OrderBy( x => 1);
Entity-Framework Chọn Tên riêng biệt:
Giả sử nếu bạn muốn mọi dữ liệu đầu tiên của cột cụ thể của mỗi nhóm;
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);
}
}