加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 课堂上的扩展方法 – 好主意还是坏主意?

发布时间:2020-12-15 05:38:08 所属栏目:百科 来源:网络整理
导读:我已经有了Entity Framework以及一个存储库和一些用于操作数据的静态类/方法.这是一个典型的例子: public static IEnumerableSupplier Contains(IEnumerableint idList){ return SupplierView.Select().Where(x = idList.Contains(x.ID));} 这些方法查询我
我已经有了Entity Framework以及一个存储库和一些用于操作数据的静态类/方法.这是一个典型的例子:
public static IEnumerable<Supplier> Contains(IEnumerable<int> idList)
{
    return SupplierView.Select().Where(x => idList.Contains(x.ID));
}

这些方法查询我的EF存储库,有时我需要传递一些变量来获取我需要的数据.

鉴于我的Supplier实体已经存在,我正在考虑使用类创建我的查询扩展方法,如下所示:

public static IEnumerable<Supplier> GetSimilar(this Supplier s)
    {
        return SupplierView.Select().Where(/* the criteria matches */));
    }

它只会用于查询数据 – 但由于我将扩展方法基于整个实体,我不确定这是否是一个很好的设计理念 – 但传递params /验证它们当然更方便.

我已经为我的主要实体设置了一个部分类,但我倾向于添加属性,低影响力的东西.

有什么想法吗?

解决方法

供应商是您自己的一类吗?

如果是,那么我建议只扩展该类 – 而不是强加扩展方法.

如果它是由EF从数据库生成的类,它是一个公共的分部类,因此您可以在第二个文件中轻松地为供应商编写其他方法,也可以使用公共部分类 – 然后在编译时将这些方法合并到一个.NET类中.

我喜欢扩展方法,它们很有意义 – 如果你需要将方法添加到你无法控制的类中 – 例如.NET框架类或第三方类.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读