uno*_*nom 1 c# linq asp.net asp.net-mvc
public List<string> TagNameList (int objectId)
{
List<string> tagNameList = db.Tags.Where(ob => ob.Id == objectId).ToList();
}
db.Tags.Where(ob => ob.Id == objectId).ToList();
Run Code Online (Sandbox Code Playgroud)
我将进入db上下文中Tags,我objectId通过导航属性选择所有具有集合的标签,我通过将ObjectTags两个列中的关系存储在一起的表进行设置,两者都构成一个复合键.
样本返回一个IQueryable<app.Models.Tag>.有没有快速的方法将其转换为List<string>只有Tag.Name?
是的,您只需要使用Select以下方法应用投影:
public List<string> TagNameList (int objectId)
{
return db.Tags.Where(ob => ob.Id == objectId)
.Select(tag => tag.Name)
.ToList();
}
Run Code Online (Sandbox Code Playgroud)
编辑:好的,鉴于您的更新,您可以使用,First()如果您只想要每个集合中的第一个对象 - 如果您想要集合中每个对象的名称,您可以使用SelectMany:
public List<string> TagNameList (int objectId)
{
return db.Tags.Where(ob => ob.Id == objectId)
.SelectMany(ob => ob.Tags)
.Select(tag => tag.Name)
.ToList();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |