开发过程中遗漏的知识点(1)
2018-06-22 06:04:26来源:未知 阅读 ()
1 EF的级联删除
默认情况下CodeFirst会在外键约束中设置 删除规则 为级联(不会默认设置 更新规则 为级联)
当仅定义了导航属性如
public virtual CategoryCategory{ get; set; }
而没有显示定义外键如
public int CategoryId { get; set; }
CodeFirst不会设置 删除规则 为级联
比如下面就不会级联 否则就是级联 删除的时候就哗哗全删了
1 public class Blog:BaseEntity<int> 2 { 3 [Required(ErrorMessage = "{0}是必须的")] 4 [Display(Name = "博客标题")] 5 [StringLength(50, ErrorMessage = "长度必须少于{1}个字")] 6 public string Title { get; set; } 7 8 [Required(ErrorMessage = "{0}是必须的")] 9 [Display(Name = "描述")] 10 [StringLength(1000, ErrorMessage = "长度必须少于{1}个字")] 11 public string Summary { get; set; } 12 13 [Required(ErrorMessage = "{0}是必须的")] 14 public string Content { get; set; } 15 16 [Required(ErrorMessage = "{0}是必须的")] 17 [Display(Name = "创建时间")] 18 public DateTime CreateTime { get; set; } 19 20 [Required(ErrorMessage = "{0}是必须的")] 21 [Display(Name = "阅读量")] 22 public int Volume { get; set; } 23 24 [Display(Name = "是否发布")] 25 public bool Publish { get; set; } 26 27 /// <summary> 28 /// 栏目 29 /// </summary> 30 public virtual Category.Category Category { get; set; } 31 32 33 //public int CategoryId { get; set; } //如果显示添加外键 便支持级联 此处不希望级联 34 }
2 AutoMapper 给已有对象赋值
AutoMapper 是ODT第三方类库
他默认是new一个对象赋值的
比如:
1 Blog blog; 2 blog = Mapper.Map<Blog>(addBlogViewModel);
当我们的blog已经存在其他属性时也会覆盖 ,如果我们不希望这样就要写成:
Blog blog = blogManager.Find(id); //在原对象基础上赋值 blog = Mapper.Map<ModifyBlogViewModel, Blog>(modifyBlogViewModel, blog);
3 使用TryUpdateModel注意点
如下代码:我从VIEW获取 Category的信息 使用TryUpdateModel
Category _category = categoryManager.Find(id); if (TryUpdateModel(_category)) { 执行更新操作出错 }
最后发现,我在视图中使用了多个Model产生的同名属性,把另一个Model的属性赋值给了我这个Model,本例是ID同名, 所以出错。
代码修改如下:
1 Category _category = categoryManager.Find(id); 2 if (TryUpdateModel(_category, new string[] { "Type", "ParentID", "Name", "Description", "Order", "Target" })) 3 { 4 更新操作成功! 5 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- ASP.NET实现进度条效果 2020-03-15
- MVC数据验证详解 2020-03-14
- asp控件和html控件的概念区别 2020-03-09
- .Net MVC网站中配置文件的读写 2020-02-28
- mvc file控件无刷新异步上传操作源码 2020-02-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash