我正在使用LINQ to SQL
并希望将函数添加到自动生成的EntitySet< TEntity >
集合中。
例如
City.Houses
自动生成Houses
EntitySet < House >
我正在使用扩展方法将提取函数添加到EntitySet < House >
类
这样我就能得到像
这样的东西City.House.FindByID(id);
但现在我也有
City.Bunglows.FindByID(id);
现在FindByID
基本上对这两个类都做同样的事情。
我是否还必须扩展Bunglows
并再次实现相同的功能。我不能对自动生成的EntitySet< TEntity >
类进行某种干预吗?
但是这将使FindByID()在所有EntitySet上都可用&lt; TEntity&gt;类。如果我只想在这两个特定实体集上实现该功能怎么办?
答案 0 :(得分:1)
使您的扩展方法像这样通用:
public static TEntity FindByID<TEntity>
(this EntitySet<TEntity> source, Int32 id)
{
// ...
}
这将允许您在EntitySet<TEntity>
(即EntitySet<House>
或EntitySet<Bungalow>
)的任何已封闭构造的实例上使用此扩展方法,只要您FindByID
的实现可以是适当地表达了一般。