Bienvenue sur Labo-dotnet Identification | Enregistrement | Faq

ASP.NET

Démarré par fab75015 à 05-05-2008 18:05. Le sujet a 0 réponse(s).

Print Search
Sort Posts:    
   05-05-2008, 18:05
fab75015 n'est pas en ligne. Dernière activité : 05/05/2008 14:46:53 fab75015

Non Noté
Rejoint : 05-05-2008
Messages : 1
Crying [:'(] [Dal générique] Au secours : impossible d'attacher une entité
Reply Quote
Bonjour à tous,

J'ai fait pour mon site une DAL generique qui implémente les methodes insert, select, delete et update .

Toutes les méthodes marche bien sauf la méthode Update qui déclenche le message d'erreur suivant au moment de l'update :

An attempt has been made to Attach or Add an entity that is not new, perhaps having been loaded from another DataContext. This is not supported.

Voici le code de la méhode :

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
using Linq;
using System.Data.Linq;
using System.ComponentModel;
using System.Reflection;


public class DalGenericId where T : class, IId
{

public static DataClassesDataContext db
{
get
{
DataClassesDataContext m_db = (DataClassesDataContext)HttpContext.Current.Application["DataClassesDataContext"];
if (m_db == null)
{
m_db = new DataClassesDataContext();
HttpContext.Current.Application["DataClassesDataContext"] = m_db;
}
return m_db;
}
}

public static List SelectTs()
{
var v_ts = from t in db.GetTable()
select t;
return v_ts.ToList();
}

public static T SelectT(int p_tId)
{
var v_ts = from t in db.GetTable()
where t.Id == p_tId
select t;
if (v_ts.Count() > 0)
return v_ts.First();
else
return default(T);
}

public static void AddT(T p_t)
{
p_t.DateCreated = DateTime.Now;
p_t.DateUpdated = null;
db.GetTable().InsertOnSubmit(p_t);
db.SubmitChanges();
}

public static void DeleteT(T p_t)
{
var v_ts = from t in db.GetTable()
where t.Id == p_t.Id
select t;
if (v_ts.Count() > 0)
{
var v_t = v_ts.First();
db.GetTable().DeleteOnSubmit(v_t);
db.SubmitChanges();
}
}

public static void UpdateT(T p_t)
{
db.GetTable().Attach(p_t, true);
db.SubmitChanges();
}
}


Est-ce que quelqu'un peut m'aider, j'ai déjà essayé beaucoup de solutions prises sur des forums mais aucune ne marche.

Merci d'avance.

Fab
Adresse IP : Connecté   Rapport 
Labo-dotnet » Programmation .... » ASP.NET » [Dal générique] Au secours : impossible d'attacher une entité

Sponsorisé par Community Server


Conditions d’utilisation et Copyright
Respect de la vie privée