我有以下无意义的(在我看来)错误消息:
System.NotSupportedException 未被用户代码处理
Message='Company.Data.DataProvider.Schema.DerivedType' 不是类型过滤操作的有效元数据类型。类型过滤仅对实体类型和复杂类型有效。
我的数据库中有以下表格:
BaseType
ObjectID uniqueidentifier
.. other unrelated columns
DerivedType
ObjectID unqueidentifier
UserID unqueidentifier
.. other unrelated columns
我使用继承的实体框架使用了以下类:
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<>
是抛出错误,我不能使用基本类型,因为我需要过滤用户 ID。关于解决这个问题的任何建议?