实体框架 - 实体查找抛出无参数构造函数

时间:2015-09-28 15:55:46

标签: c# entity-framework dbcontext

我有“Find”方法在执行时抛出此异常: 调用的目标抛出了异常。 ---> System.InvalidOperationException:类'NWatch.Entities.NWatchConvertMethod'没有无参数构造函数。

将ConvertMethod添加到dbContext并保存更改没有问题。

代码:

[TestMethod]
        public void Delete()
        {
            // Add the entry
            var convertMethod = RenderConvertMethod();
            dbContext.ConvertMethods.Add(convertMethod);
            dbContext.SaveChanges();
            int id = convertMethod.ConvertMethodId;

            // Remove entry
            dbContext.ConvertMethods.Remove(convertMethod);
            dbContext.SaveChanges();

            // Ensure the entry no longer exists in the DB
            // BELOW LINES THROWS THE EXCEPTION
            var convertMethodFromDb = dbContext.ConvertMethods.Find(id);
            Assert.IsNull(convertMethodFromDb);
        }

        private NWatchConvertMethod RenderConvertMethod()
        {
            var convertMethod = new NWatchConvertMethod("TestConvertMethod")
            {
                ConvertMethodDesc = "my description"
            };

            return convertMethod;
        }

1 个答案:

答案 0 :(得分:2)

所有实体都必须具有无参数构造函数。如果你想要它可以是私人的:

http://social.technet.microsoft.com/wiki/contents/articles/3820.entity-framework-faq-entity-classes.aspx#Does_the_Entity_Framework_require_objects_with_public_empty_constructors

您必须向NWatchConvertMethod添加无参数构造函数。