Properties 属性类型中的ef核心上下文集

Properties 属性类型中的ef核心上下文集,properties,entity-framework-core,ef-core-3.1,soft-delete,Properties,Entity Framework Core,Ef Core 3.1,Soft Delete,在我的项目中,我正在对记录进行软删除(更改为false isActive属性,并使用EF Core query filter筛选记录),我需要一种方法来删除导航属性(也可以是引用属性或集合),并将属性添加到导航属性中 这是我为属性编写的属性: [AttributeUsage(AttributeTargets.Property,Inherited=true)] 公共类数据库属性:属性 { bool-softDelete; 公共虚拟布尔软删除 { 获取{return softDelete;} 设置{

在我的项目中,我正在对记录进行软删除(更改为false isActive属性,并使用EF Core query filter筛选记录),我需要一种方法来删除导航属性(也可以是引用属性或集合),并将属性添加到导航属性中

这是我为属性编写的属性:

[AttributeUsage(AttributeTargets.Property,Inherited=true)]
公共类数据库属性:属性
{
bool-softDelete;
公共虚拟布尔软删除
{
获取{return softDelete;}
设置{softDelete=value;}
}
}
它使用:

公共Guid?CargoTransactionId{get;set;}
[数据库(SoftDelete=true)]
公共货物交易货物交易{get;set;}
下面的代码我可以找到我标记为软删除的导航属性:

var entries=Context.ChangeTracker.entries();
foreach(分录中的var分录)
{
var entryNavigations=entry.Navigations;
foreach(entryNavigations中的var导航)
{
var dbAttribute=navigation.Metadata.PropertyInfo.CustomAttributes
.Where(p=>p.AttributeType==typeof(DatabaseAttribute))
.FirstOrDefault();
}
}
bu我找不到要在上下文中使用的DbSet实体类型,如方法
DbContext.Set()


你能帮上忙吗?

你使用反射,但这会产生无法食用的代码。我认为您不需要
DbSet
。您能解释一下为什么需要它吗?我需要实现的目标是从数据库中删除导航属性。所以我想我需要一个TEntity模型类型,它具有DatabaseAttribute自定义属性,您可以使用反射,但这会产生不可接受的代码。我认为您不需要
DbSet
。您能解释一下为什么需要它吗?我需要实现的目标是从数据库中删除导航属性。所以我想我需要一个具有DatabaseAttribute自定义属性的TEntity模型类型