public interface IEntite
{
int Id { get; set; }
string NomEntite { get; }
}
public class SpecIdEntite<TEntite> : CompositeSpecification<TEntite> where TEntite : IEntite
{
private int _id;
public SpecIdEntite(int id)
{
_id = id;
}
public override Expression<Func<TEntite, bool>> IsSatisfiedBy()
{
return candidate => (candidate != null && candidate.Id == _id);
}
}
この仕様を試してみると、「タイプ「タイプ名」をタイプ「X」にキャストできません。LINQtoエンティティはエンティティデータモデルプリミティブタイプのキャストのみをサポートしています。」というエラーが発生しました。
この概念を実装する方法を知っている人はいますか?
すべてのエンティティにIdプロパティがあり、一般的な仕様を使用したい