J'ai un problème avec un code simple, je suis en train de refactoriser du code existant de LINQ à SQL vers Entity Framework. Je teste mes arrêts et supprime, et la suppression est vraiment me casser les pieds:Suppression d'exception en utilisant Entity Framework (C#)
[TestMethod]
public void TestSaveDelete()
{
ObjectFactory.Initialize(x =>
{
x.For<IArticleCommentRepository>().Use<ArticleCommentRepository>();
});
PLArticleComment plac = new PLArticleComment();
plac.Created = DateTime.Now;
plac.Email = "myemail";
plac.Name = "myName";
plac.Text = "myText";
plac.Title = "myTitle";
IArticleCommentRepository acrep = ObjectFactory.GetInstance<IArticleCommentRepository>();
try
{
PortalLandEntities ple = new PortalLandEntities();
int count = ple.PLArticleComment.Count();
acrep.Save(plac);
Assert.AreEqual(ple.PLArticleComment.Count(), count + 1);
//PLArticleComment newPlac = ple.PLArticleComment.First(m => m.Id == plac.Id);
//ple.Attach(newPlac);
acrep.Delete(plac);
Assert.AreEqual(ple.PLArticleComment.Count(), count + 1);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Chaque fois que je tente d'exécuter ce code, je reçois une exception dans la déclaration de suppression, me disant que ce ne est pas contenu dans le Note actuelle ObjectStateManager.Please que mes deux enregistrer et supprimer ressemble à ceci:
public void Delete(PLCore.Model.PLArticleComment comment)
{
using (PortalLandEntities ple = Connection.GetEntityConnection())
{
ple.DeleteObject(comment);
ple.SaveChanges();
}
}
public void Save(PLCore.Model.PLArticleComment comment)
{
using (PortalLandEntities ple = Connection.GetEntityConnection())
{
ple.AddToPLArticleComment(comment);
ple.SaveChanges();
}
}
et la thingy connexion:
public class Connection
{
public static PortalLandEntities GetEntityConnection()
{
return new PortalLandEntities();
}
}
Toutes les idées sur ce que je pouvais faire pour le rendre w ork?
C'est "Entity Framework", pas "Entity Model Framework". Aussi, je suggère de sortir de l'habitude d'utiliser ex.Message. Utilisez ex.ToString() à la place. –