IHistoricEntity
部分クラスを使用してインターフェイスをサポートするエンティティ フレームワーク テーブルがいくつかあります。IHistoricEntity
プロパティを持っていActiveTo
Datetime?
ます。
// Auto generated LINQ to Entities domain service:
[EnableClientAccess()]
public partial class ProductService : LinqToEntitiesDomainService<ProductDBEntities>
{
public IQueryable<ANALYSIS_CODES> GetANALYSIS_CODES()
{
return this.ObjectContext.ANALYSIS_CODES;
}
...
}
// My Partial class to add interface
public partial class ANALYSIS_CODES : IHistoricEntity
{}
この作業コードをメソッドにリファクタリングしようとしています:
List<ANALYSIS_CODE> filtered = (from rec in ps.GetANALYSIS_CODES() where rec.ActiveTo == null select rec).ToList()
そのようです:
private List<T> Filter<T>(IQueryable<T> queryable) where T : IHistoricEntity
{
return (from rec in queryable where rec.ActiveTo == null select rec).ToList();
}
// called like this:
List<ANALYSIS_CODE> filtered = Filter(ps.GetANALYSIS_CODES());
これにより、次の例外が発生しますToList
。
タイプ「ANALYSIS_CODES」をタイプ「IHistoricEntity」にキャストできません。LINQ to Entities は、Entity Data Model プリミティブ型のキャストのみをサポートします。
しかし、どこにキャストするように依頼しましたIHistoricEntity
か? 私はそれT
が をサポートしなければならないと少ししか言いませんIHistoricEntity
でした。