Как реализовать обновление «если существует» с пользовательской миграцией в EF Core? - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь создать миграцию для нового объекта.Но вот в чем дело: из-за того, что он был сохранен как внутренний объект для другой сущности, у меня нет возможности проверить, существует ли он (если он есть, его нужно обновить).

Теперь,я хотел бы иметь возможность аннотировать таблицу (точнее, PK), чтобы, если я попытаюсь добавить существующую сущность, она обновит ее, а не потерпит неудачу.

Возможно ли это?Если да, то как?

(вот пример кода, который показывает проблему).

public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseNpgsql(@"Host=localhost;Database=mydatabase3;Username=postgres;Password=1234");
    }
}


public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
    public Blog ContainerBlog { get; set; }
    public int blabla { get; set; }
}
class Program
{
    static void Main(string[] args)
    {
        Blog b1 = new Blog();
        Blog b2 = new Blog();
        b2.ContainerBlog = b1;
        using (var ctx = new BloggingContext())
        {
            ctx.Database.Migrate();

            ctx.Blogs.Add(b1);
            ctx.SaveChanges();
        }
        using (var ctx = new BloggingContext())
        {
            ctx.Blogs.Add(b2);
            ctx.SaveChanges();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...