Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How to know if an object is tracked by Entity Framework Core

I’m using .NET 6 and Entity Framework Core 6 (6.0.2) in an ASP.NET Core Web API project.

Assuming I have:

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)
    {
    }
}

If I’m in a generic function with the object MyModel myModel, then how can I know if this instance of MyModel is an entity tracked by Entity Framework Core?

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

I’m looking for a function like:

ApplicationDbContext context = ...
MyModel myModel = ...
//ecc...
bool result = context.IsOneOfMyEntity(myModel);

>Solution :

You can use Entry method

This method may be called on an entity that is not tracked. You can then set the State property on the returned entry to have the context begin tracking the entity in the specified state.

and check the State property for value other than Detached

Detached 0 The entity is not being tracked by the context.

e.g.

bool tracked = context.Entry(myModel).State != EntityState.Detached;
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading