asp.net-mvc – 实体创建抛出“没有为此对象定义的无参数构造函
发布时间:2020-12-15 19:48:40 所属栏目:asp.Net 来源:网络整理
导读:我正在研究基本的MVC5 / EF6应用程序,并遇到以下错误: No parameterless constructor defined for this object. 当我在创建新Controller时使用由Visual Studio 2013搭建的默认创建操作和视图时会发生这种情况.我没有在这些生成的文件中调整任何内容(TestIte
我正在研究基本的MVC5 / EF6应用程序,并遇到以下错误:
No parameterless constructor defined for this object. 当我在创建新Controller时使用由Visual Studio 2013搭建的默认创建操作和视图时会发生这种情况.我没有在这些生成的文件中调整任何内容(TestItemController,Views / TestItem / Create.cshtml).我的控制器是脚手架的实体看起来像这样: public class TestItem { private Category _category; // Primary key public int TestItemId { get; set; } public int CategoryId { get; set; } public string TestColumn { get; set; } public virtual Category Category { get { return _category; } set { _category = value; } } protected TestItem() { } public TestItem(Category category) { _category = category; } } public class Category { private ICollection<TestItem> _testItems; // Primary key public int CategoryId { get; set; } public string Description { get; set; } public virtual ICollection<TestItem> TestItems { get { return _faqs; } set { _faqs = value; } } public Category() { _testItems = new List<TestItem>(); } } 我猜这是由于TestItem类让构造函数接受了一个Category对象,这就是为了保持域模型的贫乏.如果没有类别,则无法创建TestItem.但据我所知,在延迟加载等的情况下,EF应该使用受保护的无参数构造函数. 这里发生了什么,或者我做错了什么? 更新: public class TestItemsController : Controller { public ActionResult Create() { return View(); } [HttpPost] [ValidateAntiForgeryToken] public async Task<ActionResult> Create([Bind(Include = "TestItemId,OtherColumns")] TestItem testItem) { if (ModelState.IsValid) { db.TestItems.Add(testItem); await db.SaveChangesAsync(); return RedirectToAction("Index"); } return View(testItem); } } 解决方法
当然,EF可以使用受保护的构造函数,但是scaffolding会创建用于创建新项目的操作方法.这些操作方法需要无参数的公共构造函数.
您可以找到这些创建方法here的一些细节. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – mvc web应用程序应该是3层吗?
- asp.net – App_Data / ASPNETDB.MDF到Sql Server 2005(或0
- asp.net – 使用xml数据合并/填充pdf表单文件
- asp.net调查问卷引擎
- asp.net-web-api – 将对象作为参数传递给Breeze控制器操作
- asp.net-mvc-3 – 向th添加一个类
- asp.net – SQL网络接口,错误:26 – 定位服务器/实例指定错
- 使用CQRS的ASP.NET MVC应用程序的良好读取模型是什么?
- asp.net – GetExternalLoginInfoAsync()loginInfo返回null
- asp.net-mvc – ASP.NET MVC – 数据库的替代方案
推荐文章
站长推荐
热点阅读