C# 实体框架6代码优先中的工作跟踪

C# 实体框架6代码优先中的工作跟踪,c#,entity-framework,entity-framework-migrations,C#,Entity Framework,Entity Framework Migrations,我想实现一个程序并记录所有事件(插入、更新、删除) 并保存在我的数据库中 我使用EF codefirst,ASP.NETMVC 这是我的代码: public interface IUnitOfWork { int SaveAllChanges(); IDbSet<TEntity> Set<TEntity>() where TEntity : class; } 但是changeInfo总是0。有什么问题 我的服务代码和工作单元如下: public

我想实现一个程序并记录所有事件(插入、更新、删除) 并保存在我的数据库中

我使用EF codefirst,ASP.NETMVC

这是我的代码:

public interface IUnitOfWork
{
    int SaveAllChanges();    
    IDbSet<TEntity> Set<TEntity>() where TEntity : class;
}
但是
changeInfo
总是
0
。有什么问题

我的服务代码和工作单元如下:

public AddArticleCategoryStatus Add(ArticleCategory articleCategory)
{
    _articleCategories.Add(articleCategory);     // IdbSet        
    return AddArticleCategoryStatus.AddArticleCategorySuccessfull;
}
在控制器中,我的代码是:

_articleCategoryService.Add(Category);
_uow.SaveAllChanges();
我想记录所有更改并按值插入它们

感谢您在这方面的帮助

_articleCategories.Add(articleCategory);  
您正在添加实体,而不是修改它。因此,
实体状态
将被
添加
,而不是
修改
。因此,它将无法通过
Where
过滤器:

.Where(t => t.State == EntityState.Modified)
在这方面:

_articleCategories.Add(articleCategory);  
您正在添加实体,而不是修改它。因此,
实体状态
将被
添加
,而不是
修改
。因此,它将无法通过
Where
过滤器:

.Where(t => t.State == EntityState.Modified)
请记住,您可能需要返工
。选择
,因为
添加的
删除的
实体分别没有原始值和当前值

请记住,您可能需要返工
。选择
,因为
添加的
删除的
实体分别没有原始值和当前值