如何解决使用EF6检查派生实体类型的属性?
我有一个IQueryable<BaseEntity>
,并且有派生实体EntityA
和EntityB
。我希望我的查询返回所有EntityA
个对象,并且只返回那些没有将属性设置为某个值的EntityB
对象。
不幸的是,以下代码:
IQueryable<BaseEntity> baseEntities = GetBaseEntities();
var result = baseEntities.Where(x => !(x is EntityB) || ((EntityB) x).Prop != MyConstants.Value).ToList();
引发错误:
NotSupportedException:无法将类型'BaseEntity'强制转换为'EntityB'类型。 LINQ to Entities仅支持强制转换EDM基本类型或枚举类型。
如何克服这个问题?
解决方法
以下是一种解决方法:
int main(){
int arr[] = {1,2,3,4,5,0};
cout << std::size(arr);
return 0;
}
尽管如此,我仍在寻找更好的答案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。