小编amb*_*ouz的帖子

覆盖SaveChanges()的最佳方法

我们在一个项目上工作了1个月,有6个实体与其他实体没有任何关系.它们都是简单的实体.

我们为每个实体创建了6个不同的操作类.类的SaveOrUpdateEntity()方法几乎与您的想法相同.它是这样的:

public static ErrorType SaveOrUpdateEntity(Entity entity, int userID)
{
    try
    {
        using (DataEntities ctx = new DataEntities())
        {
            if (entity != null)
            {
                if (entity.entityID == 0)
                {
                    entity.CreateDate = DateTime.Now;
                    entity.CreatedBy = userID;

                    ctx.Entry(entity).State = EntityState.Added;
                }
                else
                {
                    entity.ModifyDate = DateTime.Now;
                    entity.ModifiedBy = userID;

                    ctx.Entry(entity).State = EntityState.Modified;
                }
            }

            ctx.SaveChanges();
        }

        return ErrorType.NoError;
    }
    catch (Exception ex)
    {
        return ErrorType.SaveError;
    }
Run Code Online (Sandbox Code Playgroud)

}

如果SaveOrUpdateEntity()方法更短并且通过重写SaveChanges()方法更通用,那将非常有用.根据有关重写SaveChanges()方法的其他问题,文章和帖子,实现存储实体状态的接口是一个很好的解决方案,但我也想知道其他解决方案.

因为我是新手,所有答案都将非常感激.

谢谢.

c# entity-framework

8
推荐指数
1
解决办法
6759
查看次数

标签 统计

c# ×1

entity-framework ×1