首先,我只是想更新一个修改过的模型。可以说,我们将“文章”作为模型进行讨论。以下方法在名为“Articles”的类中实现:
public static void SaveArticle(Article article)
{
if (article.Id == 0)
{
webEntities.Articles.Add(article);
}
else
{
webEntities.Articles.Attach(article);
webEntities.Entry(article).State = EntityState.Modified;
}
webEntities.SaveChanges();
}
因此,每当我想在控制器操作中保存修改后的文章时,我只需要调用“Articles.SaveArticle(myArticle);”,它会按预期工作。
到目前为止一切顺利,但这意味着我需要为每个模型/实体冗余地实现它。
然后我想到了类似模板模式的东西。即一个名为“Entity”的类,其中“Article”继承自“Entity”。
此外,一个名为“实体”的类包含一个像这样的静态方法:
public static void SaveEntity(Entity entity)
{
if (Entity.Id == 0) // <-- Problem 1
{
webEntities.Entities.Add(entity); // <-- Problem 2
}
else
{
webEntities.Entities.Attach(entity); // <-- Problem 3
webEntities.Entry(entity).State = EntityState.Modified; // <-- Problem 4
}
webEntities.SaveChanges();
}
所以我不需要冗余地实现它,但我不知道如何解决上面代码中提到的问题。我是否认为太复杂或者什么是我的问题的最佳实践?
提前致谢!
亲切的问候