从通用服务设置实体字段值

凯文·布拉德肖

我有一个通用服务,该服务具有对实体执行的基本操作

我的许多实体都有一个字段 IsEnabled

我希望能够从我的一般服务中设置此字段

我的服务定义为:

public class Service<T> : IService<T> where T : class

IService的位置

public interface IService<T>
    {
        IPagedList<T> GetPagedList(
            int page = 1,
            Expression<Func<T, bool>> filter = null,
            Func<IQueryable<T>, IOrderedQueryable<T>> orderBy = null,
            params Expression<Func<T, object>>[] include
        );

        IEnumerable<T> GetOrderedList(Func<IQueryable<T>, IOrderedQueryable<T>> orderBy = null);

        bool Create(T entity);

        bool Update(T entity);

        T FindById(int id);

        bool Delete(T entity);

        void Enable(int id, string state);
    }

我想在服务中加入以下内容:

public void Enable(int id, string state)
        {
            T entity = FindById(id);

            entity.IsEnabled = (state == "true") ? true : false;

            Update(entity);
        }

但是VS抱怨T不包含IsEnabled

我如何保证它可以呢?

艾哈迈德·拉格布(Ahmed Ragheb)

创建新的接口IEntity

public interface IEntity
{
    public bool IsEnabled { get; set; }
}

和你的服务

public class Service<T> : IService<T> where T : class, IEntity

您所有的实体都必须执行它

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档