EF entity, extended with partial classes for actions
The best aspect of your approach is that you keep the autogenerated class as is, which makes it more readable and clean, and keeps your extra code safe from deletion if you modify the database schema.

You can extend this class with a partial class to add a constructor setting automatic properties like Date to DateTime.UtcNow.

The static classes Do, Get, and Set are not using any of the members of the entity class, so I see no reason of being part of an entity unless you mean to add some Fluent Interface to your code. But this has pros and cons, and these static classes are not the best way to do so. Also, would you do that for all entities in your model? too much repetition, complexity, error prone, and dependency on context.

In Entity Framework, the best practices is to keep the entities unaware of their context or repository for a variety of reasons like single responsibility, and testabilty.

By using EF designer, you automatically generate code like below, which you can modify or extend

public class BloggingContext : ApplicationDbContext
{
    public System.Data.Entity.DbSet&lt;PCServer.Data.Post&gt; Posts { get; set; }
    public System.Data.Entity.DbSet&lt;PCServer.Data.User&gt; Users { get; set; }
    ...
}


You can create multiple context classes, but usually I did not see any benefit of doing so. One context for all your entities is fine.

The context owns the repository here as Posts property here is your repository, no need to create a new one. And DbSet has out-of-the-box all the repository methods you need like Create, Add, Find, and Remove.

Setting entity properties and calling repository methods would then be simple and called directly as you did in the last lines in your question, like below:

BloggingContext context = new BloggingContext();

context.Posts.Add(new Post { Title = "Hi!" });
List&lt;Post&gt; posts = await context.Posts.ToListAsync();

Post post = context.Posts.First(p =&gt; p.Id == 100); // or context.Posts.Find(100) if Post.Id is marked as [Key]  
post.Title = "Changing title!";


And after all:

await context.SaveChangesAsync();