加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 在NerdDinner中首次尝试Linq to Sql – 规则违规

发布时间:2020-12-16 07:30:17 所属栏目:asp.Net 来源:网络整理
导读:我试图通过ASP.Net MVC 1.0中的 NerdDinner示例章节,我遇到了一个错误.在我到达需要编辑晚餐的部分之前,所有东西都是笨拙的.我从项目的创建到现在一直跟着指导,直到这一点(至少我能说的最好).但是,当我在NerdDinnerDataContext对象上调用SubmitChanges方法时
我试图通过ASP.Net MVC 1.0中的 NerdDinner示例章节,我遇到了一个错误.在我到达需要编辑晚餐的部分之前,所有东西都是笨拙的.我从项目的创建到现在一直跟着指导,直到这一点(至少我能说的最好).但是,当我在NerdDinnerDataContext对象上调用SubmitChanges方法时,我得到一个异常,说:

Rule violations prevent saving

我没有注意到我的代码与最终项目中的代码之间存在任何差异(除了一些我还没有添加的其他功能,显然).基本上,我不知道如何在此时对此错误进行故障排除.我试图在网上寻找一些答案,没有运气.

以下是我项目中的一些代码片段,但我不确定它们会有多好.

来自我的DinnerRepository类:

private NerdDinnerDataContext db = new NerdDinnerDataContext();
...
    public void Save()
    {
        db.SubmitChanges();
    }

来自DinnersController

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Edit(int id,FormCollection formValues)
    {
        // Retrieve existing dinner
        Dinner dinner = dinnerRepository.GetDinner(id);

        // Update dinner with form posted values
        dinner.Title = Request.Form["Title"];
        dinner.Description = Request.Form["Description"];
        dinner.EventDate = DateTime.Parse(Request.Form["EventDate"]);
        dinner.Address = Request.Form["Address"];
        dinner.Country = Request.Form["Country"];
        dinner.ContactPhone = Request.Form["ContactPhone"];

        // Persist changes back to database
        dinnerRepository.Save();

        // Perform HTTP redirect to details page for the saved Dinner
        return RedirectToAction("Details",new { id = dinner.DinnerID });
    }

我该如何解决此问题?我怎样才能找到这些“违反规则”的内容?

这是我的第一个问题,所以如果不是那么好,我会道歉.

解决方法

RuleViolations是NerdDinners的创建者Scott Hanselman决定封装业务逻辑的方式.

他将Linq To SQL类分开,并添加了一个名为GetRuleViolations()的函数,这是他添加所有业务规则的地方.看看那个方法,看看发生了什么.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读