实体框架选择不同的名称

如何使用 Entity Framework执行这个 SQL查询?

SELECT DISTINCT NAME FROM TestAddresses
277515 次浏览

试试这个:

var results = (from ta in context.TestAddresses
select ta.Name).Distinct();

这将给你一个 IEnumerable<string>-你可以调用它上面的 .ToList()得到一个 List<string>

使用 lambda 表达式. 。

 var result = EFContext.TestAddresses.Select(m => m.Name).Distinct();

另一个变体使用 where,

 var result = EFContext.TestAddresses
.Where(a => a.age > 10)//if you have any condition
.Select(m => m.name).Distinct();

使用类似 sql 语法的另一种变体

 var result = (from recordset
in EFContext.TestAddresses
.where(a => a.city = 'NY')//if you have any condition
.select new
{
recordset.name
}).Distinct();

实体-框架选择不同的名称:

假设你是 使用在其中使用多个表的视图,并且你想在这种情况下应用独立,首先你必须在变量中存储值,然后你可以像这样应用独立。

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

@ 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();

在这个例子中没有重复的类别和类别名称,我希望这将有助于你

实体-框架选择不同的名称:

假设您想要每组特定列的每一个第一个数据;

 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);
}


}

使用 Select ()

比如说

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);