that's my code (data access layer, im using linq to sql)
public class ClientDAO : IClient
{
private static DataClassesDataContext db;
#region Constructeur
public ClientDAO()
{
try
{
ConnectionStringSettings settings;
settings = ConfigurationManager.ConnectionStrings["Gestion_flotteConnectionString1"];
db = new DataClassesDataContext(settings.ConnectionString);
}
catch (NullReferenceException) { }
}
#endregion
#region CRUD
public bool ModifierClient(client oClient)
{
ChangeSet changeset = null;
int changeCount = 0;
db.client.Attach(oClient);
changeset = db.GetChangeSet();
changeCount = changeset.Updates.Count;
db.SubmitChanges();
if (changeCount > 0) { return true; }
else { return false; }
} :
and my business class :
public class Clientbusiness : IClientbusiness
{
#region Données privées de la classe
private IClient _iClient;
#endregion
#region Constructeur
public Clientbusiness()
{
_iClient = new ClientDAO();
}
#endregion
#region Getter and Setter
public IClient IClient
{
get { return this._iClient; }
set { this._iClient = value; }
}
#endregion
#region Methode Business
#region Operation CRUD
public bool ModifierClient(client oClient)
{
return _iClient.ModifierClient(oClient);
} and finally my code behind *.aspx.cs
protected void charger()
{
oEntreprise = (entities.entreprise) HttpContext.Current.Session[IDvariable];
oClient = iclientbusiness.GetClientByIdClient(oEntreprise.id_client);
Textloginclient.Text = oClient.login_client;
Textnomclient.Text = oClient.nom_client;
Textprenomclient.Text = oClient.prenom_client;
Textpswdclient.Text = oClient.pswd_client.ToString(); ;
Textemailclient.Text = oClient.email_client;
Texttelclient.Text = oClient.tel_client.ToString();
Textadresseentreprise0.Text = oEntreprise.adresse_entreprise;
Texttelentreprise.Text = oEntreprise.telephone_entreprise.ToString();
Textnomentreprise.Text = oEntreprise.nom_entreprise;
}
protected void enregister()
{
oClient.nom_client = Textnomclient.Text;
oClient.prenom_client = Textprenomclient.Text;
oClient.pswd_client = FormsAuthentication.HashPasswordForStoringInConfigFile(Textpswdclient.Text,"MD5");
oClient.email_client = Textemailclient.Text;
oClient.tel_client = int.Parse(Texttelclient.Text);
oClient.login_client = Textloginclient.Text;
oEntreprise.telephone_entreprise = ientreprisebbusiness.GetEntrepriseByIdClient(oClient.id_client).telephone_entreprise;
oEntreprise.nom_entreprise = ientreprisebbusiness.GetEntrepriseByIdClient(oClient.id_client).nom_entreprise;
oEntreprise.adresse_entreprise = ientreprisebbusiness.GetEntrepriseByIdClient(oClient.id_client).adresse_entreprise;
oEntreprise.nom_entreprise = Textnomentreprise.Text;
oEntreprise.adresse_entreprise = Textadresseentreprise0.Text;
oEntreprise.telephone_entreprise = int.Parse(Texttelentreprise.Text);
iclientbusiness.ModifierClient(oClient);
ientreprisebbusiness.ModifierEntreprise(oEntreprise);
}
protected void Button1_Click(object sender, EventArgs e)
{
this.enregister();
Response.Redirect("loginadministrateur.aspx",false);
} i have problem with the method "enregister" in aspx.cs, when i start the debug , i got this exception :"invalidOperationException: Cannot attach an entity that already exists" in the class ClientDAO : ( i dont understand why as i try to update this entity)
any ideas??
thanks