Ciao a tutti,
mi trovo con un problema che non riesco a risolvere.
Lavoro sul framework 3.5 con EF e con db MySql con Connector/Net.
Se attraverso un modulo voglio aggiornare i dati sul db apparentemente non si presentano problemi. Se provo a usare qualche carattere diacritico tipo ¨ sul db mi ritrovo la s normale. Se faccio una query direttamente sul db l'aggiornamento va a buon fine. La pagina mi legge il carattere correttamente ma se riprovo ad aggirnare con EF niente da fare.
Ho provato all'interno della pagina ad utilizzare questo script e l'aggiornamento viene fatto correttamente.
MySqlConnection myConnection;
MySqlDataAdapter myDataAdapter;
DataSet myDataSet;
string strSQL;
myConnection = new MySqlConnection("server=myServer; user id=myUser; password=myPwd; database=myDb; pooling=false;");
strSQL = "SELECT Name_SI FROM partners where idPartner=1;";
MySqlCommand myCommand = new MySqlCommand("update partners set Name_SI='¨' where IdPartner=1;", myConnection);
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
myDataAdapter = new MySqlDataAdapter(strSQL, myConnection);
myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, "mytable");
MySQLDataGrid.DataSource = myDataSet;
MySQLDataGrid.DataBind();
La funzione in EF che mi fa l'aggiornamento è questa:
public Partner UpdatePartner(string Name_SI, int IdPartner)
{
/* aggiorno i dati */
using (myEntities ctx = new myEntities())
{
p = (from item in ctx.PartnerSet where item.IdPartner == IdPartner select item).First();
p.Name_SI = Name_SI;
ctx.SaveChanges();
ctx.Detach(p);
}
return p;
}
Per tutta la durata della funzione la proprietà p.Name_SI mi mantiene il carattere corretto, a questo punto però non so cosa succede durante il ctx.SaveChanges().
Qualche suggerimento?
Grazie mille
Fabio