gpt4 book ai didi

entity-framework - 使用 LINQ 和 TPT EF 时如何转换为子类?

转载 作者:行者123 更新时间:2023-12-04 05:40:28 26 4
gpt4 key购买 nike

我有以下类层次结构:

public class RealPeople { }

public class Users : RealPeople { }
public class People : RealPeople { }

在我的 dbContext 中,我为 RealPeople 定义了一个 dbSet在 OnModelCreating 过程中,我为 People 和 Users 指定了单独的表:
modelBuilder.Entity<Users>().ToTable("Users");
modelBuilder.Entity<People>().ToTable("People");

这会在我的数据库中创建相应的完整层次结构,以及 3 个相应的表。
当我想检索 Users 的列表时,问题就出现了。在我的数据库中。
这个:
List = (from Reg in PersistentMgr.RealPeople select (Users)Reg)
.ToList();

或这个:
List = (from Reg in PersistentMgr.RealPeople select (Users)((RealPeople)Reg))
.ToList();

抛出异常:

LINQ only being able to cast primitive model types.



所以问题是,我不能将 RealPeople 转换为相应的子类 Users。
关于这个有什么想法吗?

最佳答案

获取子类集合的方法是使用 OfType :

var users = (from p in PersistentMgr.RealPeople select p).OfType<User>();

关于entity-framework - 使用 LINQ 和 TPT EF 时如何转换为子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12790856/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com