dot*_*oob 5 c# asp.net extension-methods entity-framework
我已经有了Entity Framework以及一个存储库和一些用于操作数据的静态类/方法.这是一个典型的例子:
public static IEnumerable<Supplier> Contains(IEnumerable<int> idList)
{
return SupplierView.Select().Where(x => idList.Contains(x.ID));
}
Run Code Online (Sandbox Code Playgroud)
这些方法查询我的EF存储库,有时我需要传递一些变量来获取我需要的数据.
鉴于我的Supplier实体已经存在,我正在考虑使用类创建我的查询扩展方法,如下所示:
public static IEnumerable<Supplier> GetSimilar(this Supplier s)
{
return SupplierView.Select().Where(/* the criteria matches */));
}
Run Code Online (Sandbox Code Playgroud)
它只会用于查询数据 - 但由于我将扩展方法基于整个实体,我不确定这是否是一个很好的设计理念 - 但传递params /验证它们当然更方便.
我已经为我的主要实体设置了一个部分类,但我倾向于添加属性,低影响力的东西.
有什么想法吗?
mar*_*c_s 12
是Supplier你自己的一类?
如果是,那么我建议只扩展该类 - 而不是强加扩展方法.
如果它是由EF从数据库生成的类,public partial class那么您可以轻松地Supplier在第二个文件中编写其他方法,也可以使用public partial class- 然后在编译时将这些方法合并到一个.NET类中.
我喜欢扩展方法,它们很有意义 - 如果你需要为你不能控制的类添加方法- 例如.NET框架类或第三方类.
| 归档时间: |
|
| 查看次数: |
1645 次 |
| 最近记录: |