【问题标题】:How to fix "System.ArgumentNullException: 'Value cannot be null. Parameter name: entity'"如何修复“System.ArgumentNullException:'值不能为空。参数名称:实体'”
【发布时间】:2019-01-19 01:29:43
【问题描述】:

我收到这个错误

System.ArgumentNullException: '值不能为空。参数名称:实体'

这是我的代码:

namespace CodeFirstFinal
{
    class Program
    {
        public static Category category { get; private set; }

        static void Main(string[] args)
        {
            using (var db = new CategoryContext())
            {
                Console.Write("Enter a name for a new Error category:");
                var name = Console.ReadLine();

                var blog = new Category { Name = name };
                db.Categories.Add(category);
                db.SaveChanges();

                var query = from c in db.Categories
                            orderby c.Name
                            select c;

                foreach (var item in query)
                {
                    Console.WriteLine(item.Name);
                }
            }
        }
    }

    public class Category
    {
        public int? CategoryId { get; set; }
        public string Name { get; set; }
        public string Url { get; set; }

        public virtual List<Error> Errors { get; set; }
    }

    public class Error
    {
        public int? ErrorId { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }

        public int? CategoryId { get; set; }
        public virtual Category Category { get; set; }
    }

    public class User
    {
        [Key]
        public string Username { get; set; }
        public string DisplayName { get; set; }
    }

    public class CategoryContext : DbContext
    {
        public DbSet<Category> Categories { get; set; }
        public DbSet<Error> Errors { get; set; }
        public DbSet<User> Users { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<User>()
                .Property(u => u.DisplayName)
                .HasColumnName("display_area");
        }
    }
}

这行代码出现错误:

db.Categories.Add(category);

我是编程新手,如果有任何帮助,我将不胜感激。

谢谢!

【问题讨论】:

  • 您没有显示category 的分配位置。你的意思是写db.Categories.Add(blog);
  • 您的属性category 未设置,这意味着当您将其添加到Categories 时它是null。也许您想在添加之前先将分配blog 设置为category

标签: c# entity-framework ef-code-first


【解决方案1】:
            var name = Console.ReadLine();
            var category = new Category { Name = name };
            db.Categories.Add(category);

你需要像上面那样写代码,希望能解决你的问题。

【讨论】:

    【解决方案2】:

    您没有初始化 Category 属性,因此您将其作为空值传递给 Add 方法,这是一个错误。要么初始化 Category 属性,要么传递 blog 变量。

    【讨论】:

      猜你喜欢
      • 2019-08-31
      • 1970-01-01
      • 2019-08-17
      • 2018-06-03
      • 2010-11-11
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多