我正在尝试为新实体创建迁移。但是,这是一件事情:由于将它保存为其他实体的内部对象,因此我无法检查它是否存在(如果存在,则需要更新)。
现在,我希望具有注释表(更具体地说是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();
}
}
}