-1

我在我的应用程序中使用 ASPNETZero,在下面的代码片段的帮助下,实体被软删除。

var query = Repository.GetAll()
            .Where("Id == @0", input.Id)
            .ProjectTo<TDto>(ItemMapper);
        var dto = await AsyncExecuter.SingleAsync(query, true);
        await base.DeleteAsync(input);
        await CurrentUnitOfWork.SaveChangesAsync();
        await EventBus.TriggerAsync(new DestroyEvent<TDto>(dto));

它将 IsDeleted 属性设置为 False 但我想检查引用表中是否存在该值,如果存在则不要删除(软删除)实体

4

1 回答 1

0

如果您使用代码优先创建实体,如下所示:

public class Book
{ 
    public Guid Id{ get; set; }
    public string BookName{ get; set; }
    public virtual ICollection<BookPage> BookPages{ get; set; } 
}

 public class BookPage
 { 
        public Guid Id{ get; set; }
        public int PageNum{ get; set; }
        public string PageContent{ get; set; }
 }

您可以编写查询以获取 BookPage 中未引用的 Book:

var query = BookRepository
            .Include(x => x.BookPages)
            .Where(x => x.Id == input.Id && x.BookPages.Count == 0)
            .ProjectTo<BookDto>(ItemMapper);
于 2021-08-18T08:32:55.750 回答