基于C#/.NET8的 masuit.org个人博客站项目源码,https://masuit.org ,供参考、学习、引用、非商业性质的部署。
数据库期初脚本:
[HttpGet("/Init"), MyAuthorize]
public ActionResult Init([FromServices] DataContext db)
{
var comments = db.Comment.Where(c => c.ParentId == 0 || c.ParentId == null).ToList();
comments.ForEach(c =>
{
c.ParentId = null;
c.GroupTag = SnowFlake.NewId;
c.Path = c.Id + "";
});
comments.Flatten().ForEach(c =>
{
c.GroupTag = c.Root().GroupTag;
c.Path = c.Path(cc => cc.Id + "", ",");
});
var msgs = db.LeaveMessage.Where(c => c.ParentId == 0 || c.ParentId == null).ToList();
msgs.ForEach(c =>
{
c.ParentId = null;
c.GroupTag = SnowFlake.NewId;
c.Path = c.Id + "";
});
msgs.Flatten().ForEach(c =>
{
c.GroupTag = c.Root().GroupTag;
c.Path = c.Path(cc => cc.Id + "", ",");
});
var categories = db.Category.Where(c => c.ParentId == 0 || c.ParentId == null).ToList();
categories.ForEach(c => c.Path = c.Id + "");
categories.Flatten().ForEach(c => c.Path = c.Path(cc => cc.Id + "", ","));
var menus = db.Menu.Where(c => c.ParentId == 0 || c.ParentId == null).ToList();
menus.ForEach(c => c.Path = c.Id + "");
menus.Flatten().ForEach(c => c.Path = c.Path(cc => cc.Id + "", ","));
db.Comment.Where(c => c.GroupTag == null).DeleteFromQuery();
db.LeaveMessage.Where(c => c.GroupTag == null).DeleteFromQuery();
return Ok(db.SaveChanges());
}