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();
我要进入 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();
}
编辑:好的,根据您的更新,如果您只想要每个集合中的第一个对象,则可以使用 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();
}
我是一名优秀的程序员,十分优秀!