为什么通用存储库被视为反模式?
在我看来,许多专业的存储库类共享相似的特性,让这些类实现一个概述这些特性的接口是有意义的,创建一个通用的存储库
说明我的观点,说我们有这个代码
public class IEntity { public int Id; } public interface IRepository where T: IEntity { IEnumerable List { get; } void Add(T entity); void Delete(T entity); void Update(T entity); T FindById(int Id); } [Table("Author")] public partial class Author : IEntity { public int Id { get; set; } [Required] public string authorname { get; set; } }
然后我们继续实现这些接口来创建我们的特定存储库
public class AuthorRepository : IRepository { Model1 _authorContext; public AuthorRepository() { _authorContext = new Model1(); } public IEnumerable List { get { return _authorContext.Authors; } } public void Add(Author entity) { _authorContext.Authors.Add(entity); _authorContext.SaveChanges(); } public void Delete(Author entity) { _authorContext.Authors.Remove(entity); _authorContext.SaveChanges(); } public void Update(Author entity) { _authorContext.Entry(entity).State = System.Data.Entity.EntityState.Modified; _authorContext.SaveChanges(); } public Author FindById(int Id) { var result = (from r in _authorContext.Authors where r.Id == Id select r).FirstOrDefault(); return result; } }
在我实现这个之前,我做了一些关于这是否是一个好主意的研究,并且我可以找到所有信息,我们称之为反模式,但没有解释原因。
为什么通用存储库被视为反模式?
上述就是C#学习教程:为什么通用存储库被视为反模式?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1033887.html