我在asp.net官方核心文档上看到了有关关系的帖子: asp.net core model relationships
takePicture = async function() {
if (this.camera) {
const options = { quality: 0.5, base64: true };
const data = await this.camera.takePictureAsync(options)
console.log(data.uri);
this.setState({path: data.uri});
const tessOptions = {
whitelist: null,
blacklist: '1234567890\'!"#$%&/()={}[]+*-_:;<>'
};
RNTesseractOcr.recognize(data.uri, 'LANG_INDONESIAL', tessOptions)
.then((result) => {
// this.setState({ ocrResult: result });
console.log("OCR Result: ", result);
})
.catch((err) => {
console.log("OCR Error: ", err);
})
.done();
}
};
如果我想返回所有标签的列表,则可以这样做:
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public List<PostTag> PostTags { get; set; }
}
public class Tag
{
public string TagId { get; set; }
public List<PostTag> PostTags { get; set; }
}
public class PostTag
{
public int PostId { get; set; }
public Post Post { get; set; }
public string TagId { get; set; }
public Tag Tag { get; set; }
}
如何返回标签及其所应用的帖子数?
示例=
预算(3)
答案 0 :(得分:2)
首先创建一个视图模型类来表示您要传递的数据
public class PostCount
{
public string Name { get; set; }
public int Count { get; set; }
}
现在,在操作方法中,您可以查询Tags
集合并在每个Count
对象的PostTags
属性上调用Tag
方法。在LINQ表达式中,您可以进行投影以创建视图模型对象。
public async Task<IEnumerable<PostCount>> AllTags()
{
var tags = await _context.Tags
.Select(a => new PostCount
{
Name = a.Name,
Count = a.PostTags.Count()
}
).ToListAsync();
return tags;
}
当您访问此操作方法时,上面的操作将返回您想要的数据。
如果要在视图中显示此视图,则可以将我们创建的列表返回到视图。在您的视图中,该视图的类型很强,是PostCount
类的列表,您可以呈现标签名称及其发布数
public async Task<IEnumerable<PostCount>> AllTags()
{
var tags = await _context.Tags.Select(a => new PostCount
{
Name = a.Name,
Count = a.PostTags.Count()
}).ToListAsync();
return View(tags);
}
并在您的AllTags.cshtml
视图中
@model List<PostCount>
<h3>Tags</h3>
@foreach(var tag in Model)
{
<p>@tag.Name @tag.Count </p>
}
另外,您可能需要在PostTag
类中拥有一个主键属性
public class PostTag
{
public int Id { set;get; }
// other properties you have
}