Estoy usando .NET 6 y Entity Framework Core 6 (6.0.2) en un proyecto de API web de ASP.NET Core.
Suponiendo que tengo:
public class MyModel { public Guid Id { get; set; } public string MyData { get; set; } //etc... } public class ApplicationDbContext : DbContext { public DbSet<MyModel> MyModels { get; set; } public ApplicationDbContext(DbContextOptions<ApplicationDbContext> opt) : base(opt) { } }
Si estoy en una función genérica con el objeto MyModel myModel
, ¿cómo puedo saber si esta instancia de MyModel
es una entidad rastreada por Entity Framework Core?
Estoy buscando una función como:
ApplicationDbContext context = ... MyModel myModel = ... //ecc... bool result = context.IsOneOfMyEntity(myModel);
Puede utilizar el método de entrada
Se puede llamar a este método en una entidad que no se rastrea. Luego puede establecer la propiedad State en la entrada devuelta para que el contexto comience a rastrear la entidad en el estado especificado.
y verifique la propiedad State
por valor que no sea Detached
Separado 0 La entidad no está siendo rastreada por el contexto.
p.ej
bool tracked = context.Entry(myModel).State != EntityState.Detached;