我有实体框架问题。我有这个代码,其中MyType2派生自MyType1:
var EF = AppDbContext.Current;
var result = EF.Set<MyType1>().Where(
x => x.Type == "MyType2" &&
EF.Set<MyType2>().Any(y => y.Code == ((MyType2)x).Code)
);
当我运行它时,它会抛出“NotSupportedException&#39;” 无法投射类型&#39; MyType1&#39;输入&#39; MyType2&#39;。 LINQ to Entities仅支持转换EDM原语或枚举类型。
如何正确地将MyType1强制转换为MyType2?
答案 0 :(得分:0)
并非每个MyType1都是MyType2类型,但是,每个MyType2都是MyType1的类型。这就是为什么你不能(也不应该)将MyType1实例转换为MyType2。
在这种情况下,您可以使用.OfType<>
,这是一个示例,并且不确定是否会100%为您工作,但可能会提出一个想法:
var mytype2Instances = dbcontext.MyType1.OfType<MyType2>().List();