[RF

martedì 11 dicembre 2012 - 13.14
Tag Elenco Tags  C#  |  .NET 4.0

Gemini Profilo | Expert

Ciao a tutti

ho scritto una piccola query per eseguire delle modifiche.

Prima ho scritto così:

using (mccEntities ctx = new mcEntities())
{
var user = ctx.aspnet_Membership.First(u => u.UserId == UserId);
user.IsApproved = !user.IsApproved;
ctx.SaveChanges();
}

Dopo aver letto un articolo nel quale spiegavano che in questo modo non va bene perchè si eseguono 2 operazioni sul db, l'ho modificata in questo modo:

using (mcEntities ctx = new mcEntities())
{
var user = new aspnet_Membership();
user.UserId = UserId;
ctx.AttachTo("aspnet_Membership", user);
user.IsApproved = !user.IsApproved;
ctx.SaveChanges();
}

Solo che ora non esegue la modifica. Perchè?

Grazie mille

totti240282 Profilo | Guru

Perche devi contrassegnare la proprietà come modificata.
C'è solo un capitano !!!!!!

Gemini Profilo | Expert

Grazie Capitano
ma non capisco perchè nell'esempio non hanno scritto sta cosa.
ma meglio fare così o come ho fatto la prima volta?
Cmq, ho fatto così:

using (mcEntities ctx = new mcEntities())
{
var user = new aspnet_Membership();
user.UserId = UserId;
ctx.AttachTo("aspnet_Membership", user);
ctx.ObjectStateManager.ChangeObjectState(user, System.Data.EntityState.Modified);
user.IsApproved = !user.IsApproved;
ctx.SaveChanges();
}
ma non funziona. Ricevo questo errore:

"Impossibile inserire il valore NULL nella colonna 'Password' della tabella 'mc.dbo.aspnet_Membership'. La colonna non ammette valori Null. UPDATE avrà esito negativo. L'istruzione è stata interrotta."

ma con questa procedura il contesto dovrebbe essere in grado di riconoscere quali sono le proprietà modificate, perchè allora mi da errore su Password?

Grazie mille
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5