Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EntityFramework核心中的数据库更新异常_C#_Entity Framework_.net Standard 2.0 - Fatal编程技术网

C# EntityFramework核心中的数据库更新异常

C# EntityFramework核心中的数据库更新异常,c#,entity-framework,.net-standard-2.0,C#,Entity Framework,.net Standard 2.0,我正在写一个.Net标准库。我想使用实体框架来执行DB操作。为了执行DB操作,我想使用实体框架 //Intro.cs in SQLiteExample(.NetStandard library) namespace SQLiteExample { internal class BloggingContext : DbContext { public DbSet<Blog> Blogs { get; set; } public DbSet

我正在写一个.Net标准库。我想使用实体框架来执行DB操作。为了执行DB操作,我想使用实体框架

//Intro.cs in SQLiteExample(.NetStandard library)
namespace SQLiteExample
{
    internal class BloggingContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Post> Posts { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder options)
        {
            options.UseSqlite("Data Source=blogging.db");

        }
    }

    public class BlogOperations
    {
        BloggingContext bloggingContext = new BloggingContext();

        public async void CreateBlog(string url)
        {
            using (var db = bloggingContext)
            {
                Console.WriteLine("Inserting a new blog");
                db.Add(new Blog { Url = url });
                await db.SaveChangesAsync();
            }
        }

        public async void CreateBlogWithPost(String url, string title, string content)
        {
            using (var db = bloggingContext)
            {
                Console.WriteLine("Inserting a new Blog with a post");
                Post post = new Post
                {
                    Title = title,
                    Content = content
                };
                Blog blog = new Blog
                {
                    Url = url
                };
                blog.Posts.Add(post);
                db.Add(blog);
                await db.SaveChangesAsync();
            }

        }

        public async Task<Blog> ReadBlogs()
        {
            using (var db = bloggingContext)
            {
                Console.WriteLine("Querying for a blog");
                Blog blog = await db.Blogs
                    .OrderBy(b => b.BlogId)
                    .FirstAsync();
                return blog;
            }

        }

        public List<Blog> ReadAllBlogs()
        {
            using (var db = bloggingContext)
            {
                var blogs = db.Blogs
                    .OrderBy(b => b.BlogId)
                    .ToList();
                return blogs;
            }

        }

        public async void UpdateBlog(string url, string title, string content)
        {
            Console.WriteLine("Updating the blog and adding a post");
            var db = bloggingContext;
            var blog = await db.Blogs
                .OrderBy(b => b.BlogId)
                .FirstAsync();
            blog.Url = url;
            blog.Posts.Add(
                new Post
                {
                    Title = title,
                    Content = content
                });
            await db.SaveChangesAsync();
        }

        public async void DeleteFirstBlog()
        {
            Console.WriteLine("Delete the blog");
            var db = bloggingContext;
            var blog = db.Blogs
                .OrderBy(b => b.BlogId)
                .FirstAsync();
            db.Remove(blog);
            await db.SaveChangesAsync();
        }

        public void DeleteSpecificBlog(string url)
        {
            var db = bloggingContext;
            var blog = db.Blogs
                .Where( b => String.Equals(b.Url, url))
                .First();
        }
    }

    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }
        public int Rating { get; set; }
        public List<Post> Posts { get; set; }

        public override string ToString()
        {
            string str = "";

            str += "Url" + Url + "\n";
            str += "Rating" + Rating + "\n  Posts: \n";

            foreach(Post post in Posts)
            {
                str += "Title" + post.Title + ",";
                str += "Post" + post.Content + "\n";
            }

            return str;
        }
    }

    public class Post
    {
        public int PostId { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }

        public int BlogId { get; set; }
        public Blog Blog { get; set; }
    }
}
单击按钮后,我得到以下错误:


见此,请至少分享一些代码或参考示例,以便在尝试执行CRUD操作时发现上述错误。
private void Button_Click(object sender, RoutedEventArgs e)
{
        blogOperations.CreateBlog(UrlTb.Text);
}