它并不重要,但我想弄清楚它告诉我什么,这是一个合理的警告吗?有人可以用简单的术语解释这个错误吗?
CA1001 Types that own disposable fields should be disposable
Implement Idisposable on ‘MemVoteManager’ because it creates members of the
following Idisposable types: ‘CongressDBEntities’. If ‘MemVoteManager’
has prevIoUsly shipped,adding new members that implement Idisposable
to this type is considered a breaking change to existing
consumers.
public class MemVoteManager : AbstractDataManager,IMemVoteManager { private CongressDBEntities context = new CongressDBEntities(); public int AddMemVote(tMemVotescore mvs) { //Insert Model context.tMemVotescores.Add(mvs); context.SaveChanges(); int newPK = mvs.MemVotescoresID; //Update funky column ID with PK as well var memVoteItem = (from m in context.tMemVotescores where m.MemVotescoresID == newPK select m).SingleOrDefault(); memVoteItem.ID = memVoteItem.MemVotescoresID; context.SaveChanges(); return newPK; }
解决方法
您可以实现Idisposable,以便在消费者完成您的课程时处理上下文,但您可能最好不要让上下文成为该类的成员.只需在需要时创建它并在完成后将其丢弃:
public int AddMemVote(tMemVotescore mvs) { //Insert Model using(CongressDBEntities context = new CongressDBEntities()) { context.tMemVotescores.Add(mvs); context.SaveChanges(); int newPK = mvs.MemVotescoresID; //Update funky column ID with PK as well var memVoteItem = (from m in context.tMemVotescores where m.MemVotescoresID == newPK select m).SingleOrDefault(); memVoteItem.ID = memVoteItem.MemVotescoresID; context.SaveChanges(); } return newPK; }
上下文是轻量级的,因此每次创建它们都没有太大的代价.此外,您不必担心消费者会通知您处理上下文,并且如果多次使用该类的一个实例,则内存中没有很多内置更改.
原文地址:https://www.jb51.cc/csharp/91805.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。