Non è importante ma sto cercando di capire cosa mi sta dicendo ed è un avvertimento legittimo? Qualcuno può spiegare questo errore in termini semplici per me?Avviso di analisi del codice di Visual Studio 2012 CA1001. Cosa significa?
CA1001 tipi che possiedono campi monouso devono essere usa e getta
Implementare IDisposable su 'MemVoteManager' perché crea i membri dei seguenti tipi IDisposable: 'CongressDBEntities. Se "MemVoteManager" è stato precedentemente spedito, l'aggiunta di nuovi membri che implementano IDisposable a questo tipo è considerata una modifica irrisoria ai consumatori esistenti di .
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;
}
Sarà difficile spiegare che cosa ti dice di avvertire senza dover semplicemente ripetere l'avviso. Poiché il tuo tipo ha un campo, dove costruisce un oggetto e lo memorizza, dove quell'oggetto implementa IDisposable, dovresti implementare IDisposable anche sul tuo tipo, eliminando l'oggetto in quel campo. Questo è fondamentalmente ciò che dice l'avvertimento. La parte del cambiamento sostanziale è che qualsiasi codice esistente che usi il tuo tipo non sarebbe stato costruito pensando a 'Dispose', e quindi è un cambiamento decisivo. –