私はこのエンティティを持っています:
public class MyDTO
{
int id;
public int Id
{
get { return id; }
set { id = value; }
}
DateTime createdOn;
public DateTime CreatedOn
{
get { return createdOn; }
set { createdOn = value; }
}
DateTime modifiedOn;
public DateTime ModifiedOn
{
get { return modifiedOn; }
set { modifiedOn = value; }
}
int duration;
public int Duration
{
get { return ((TimeSpan)(ModifiedOn - CreatedOn)).Days; }
protected set { }
}
}
これDuration
は計算されたプロパティであり、次のマッピング ファイルも含まれます。
internal partial class MyDTO_Mapping : EntityTypeConfiguration<MyDTO>
{
public MyDTO_Mapping()
{
this.HasKey(t => t.Id);
this.ToTable("MyDTO");
this.Property(t => t.Id);
this.Property(t => t.CreatedOn).HasColumnName("CreatedOn");
this.Property(t => t.ModifiedOn).HasColumnName("ModifiedOn");
this.Ignore(t => t.Duration);
}
}
しかし、このエンティティに対してクエリを実行したい場合 ( Duration
where 句で使用した場合)、次のエラーが発生します。
指定された型メンバー 'Duration' は、LINQ to Entities ではサポートされていません。初期化子、エンティティ メンバー、およびエンティティ ナビゲーション プロパティのみがサポートされています。
私の間違いはどこですか?