次のような有益でない (私の意見では) エラー メッセージがあります。
System.NotSupportedException はユーザー コードによって処理されませんでした
Message='Company.Data.DataProvider.Schema.DerivedType' は、型フィルタリング操作の有効なメタデータ型ではありません。タイプ フィルタリングは、エンティティ タイプと複合タイプでのみ有効です。
データベースに次のテーブルがあります。
BaseType
ObjectID uniqueidentifier
.. other unrelated columns
DerivedType
ObjectID unqueidentifier
UserID unqueidentifier
.. other unrelated columns
継承を使用してEntity Frameworkで使用される次のクラスがあります。
BaseType
Guid ObjectID
.. other unrelated properties
DerivedType : BaseType
Guid UserID
.. other unrelated properties
私の部分的な SchemaContext は次のようになります。
public partial class SchemaContext
{
public IQueryable<DerivedType> DerivedTypes
{
get { return this.BaseType.OfType<DerivedType>()
}
}
次のようなメソッドがあります。
result = this._dbContexts.SchemaContext.DerivedTypes
.Include(i => i.RatingType)
.Include(i => i.ObjectVersion)
.Where(dt => objectIDs.Any(id =>
dt.ObjectVersion.
.MatchingObjects
.Select(s => s.ObjectID).Contains(id))
&& dt.UserID == userID)
.ToList();
がエラーをスローしている.OfType<>
と思いますが、UserID でフィルター処理する必要があるため、基本型を使用できません。この問題を解決するための提案はありますか?