Bagaimana saya bisa melakukan SQL
kueri ini dengan Entity Framework
?
SELECT DISTINCT NAME FROM TestAddresses
c#
linq
entity-framework
distinct
patrick
sumber
sumber
Coba ini:
var results = (from ta in context.TestAddresses select ta.Name).Distinct();
Ini akan memberi Anda
IEnumerable<string>
- Anda dapat memanggilnya.ToList()
untuk mendapatkanList<string>
.sumber
Cara yang ditunjukkan @alliswell sepenuhnya valid, dan ada cara lain! :)
var result = EFContext.TestAddresses .GroupBy(ta => ta.Name) .Select(ta => ta.Key);
Saya berharap ini akan bermanfaat bagi seseorang.
sumber
jika Anda memiliki banyak kolom lakukan seperti ini:
DBContext.TestAddresses.Select(m => new {m.NAME, m.ID}).Distinct();
Dalam contoh ini tidak ada duplikat CategoryId dan tidak ada CategoryName saya harap ini akan membantu Anda
sumber
Entity-Framework Pilih Nama Berbeda:
Misalkan jika Anda menggunakan Tampilan di mana Anda menggunakan beberapa tabel dan Anda ingin menerapkan perbedaan dalam kasus itu terlebih dahulu Anda harus menyimpan nilai dalam variabel & kemudian Anda dapat menerapkan Berbeda pada variabel itu seperti ini ....
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(); }
Atau Anda dapat mencoba Contoh Sederhana ini
Public Function GetUniqueLocation() As List(Of Integer) Return db.LoginUsers.Select(Function(p) p.LocID).Distinct().ToList() End Function
sumber
gunakan Select (). Distinct ()
misalnya
DBContext db = new DBContext(); var data= db.User_Food_UserIntakeFood .Select( ).Distinct();
sumber
Untuk menghindari
ORDER BY items must appear in the select list if SELECT DISTINCT
kesalahan, seharusnya yang terbaikvar results = ( from ta in DBContext.TestAddresses select ta.Name ) .Distinct() .OrderBy( x => 1);
sumber
Entity-Framework Pilih Nama Berbeda:
Misalkan jika Anda menginginkan setiap data pertama dari kolom tertentu dari setiap grup;
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); } }
sumber