Entityframework:启用延时加载的主意事项(只为强化记忆)
生活随笔
收集整理的這篇文章主要介紹了
Entityframework:启用延时加载的主意事项(只为强化记忆)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Check List
- 無參的、高于私有訪問級別的構造方法(經常忘記)。
- 非封閉的類(默認的非封閉的)。
- DbContext 配置要開啟(默認是開啟的)。
因為我喜歡將類型設置為封閉的,提供有參數的構造方法,盡可能的低的訪問級別,而這些原則和延時加載的原則剛好相反,因此寫下來強化一下記憶。
示例
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 using Happy.Archetype; 8 using Happy.Domain; 9 using Happy.Cms.Domain.Shares; 10 11 namespace Happy.Cms.Domain.Articles 12 { 13 [DomainModel, Moment] 14 public class Article : AggregateRoot<Guid> 15 { 16 private ICollection<AssignedTag> _assignedTags = new List<AssignedTag>(); 17 18 protected Article() 19 { 20 } 21 22 public Article(Guid id) 23 : base(id) 24 { 25 this.SettingInfo = new SettingInfo(); 26 this.ImageInfo = new ImageInfo(); 27 this.SeoInfo = new SeoInfo(); 28 } 29 30 public string Title { get; set; } 31 32 public Guid CategoryId { get; set; } 33 34 public string Author { get; set; } 35 36 public ImageInfo ImageInfo { get; private set; } 37 38 public SettingInfo SettingInfo { get; private set; } 39 40 public virtual ICollection<AssignedTag> AssignedTags 41 { 42 get { return _assignedTags; } 43 protected set { _assignedTags = value; } 44 } 45 46 public string Content { get; set; } 47 48 public SeoInfo SeoInfo { get; private set; } 49 50 public void AssignTags(IEnumerable<Guid> tagIds) 51 { 52 tagIds = tagIds ?? Enumerable.Empty<Guid>(); 53 54 var oldAssignedTagIds = this.AssignedTags.Select(x => x.TagId).ToList(); 55 var addedTagIds = tagIds.Except(oldAssignedTagIds); 56 var removedTagIds = oldAssignedTagIds.Except(tagIds); 57 58 foreach (var addedTagId in addedTagIds) 59 { 60 this.AssignedTags.Add(new AssignedTag(Guid.NewGuid(), addedTagId)); 61 } 62 63 foreach (var removedTagId in removedTagIds) 64 { 65 this.AssignedTags.Remove(this.AssignedTags.First(x => x.TagId == removedTagId)); 66 } 67 } 68 } 69 }?
轉載于:https://www.cnblogs.com/happyframework/p/3517150.html
總結
以上是生活随笔為你收集整理的Entityframework:启用延时加载的主意事项(只为强化记忆)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mp3排序软件哪个好用_电脑录音软件哪个
- 下一篇: Spring 源码阅读 之 Spring