gpt4 book ai didi

c# - 将 Entity Framework 与自定义子类一起使用

转载 作者:太空狗 更新时间:2023-10-30 01:58:24 26 4
gpt4 key购买 nike

我正在使用 C# Entity Framework 将数据映射到项目的 sql server。我正在尝试寻找一种方法来使用 Entity Framework 根据鉴别器字段自动生成自定义子类,同时不需要子类实体具有表。

例子:

在 Entity Framework 中,我有一个对象A,它有一个字段type。我还有以下内容

public class B : A {
}

public class C : A {
}

我正在寻找一种方法让 Entity Framework 识别出 type 字段例如是 B,然后创建 B 的实例> 类。这些类没有需要持久保存到数据库的数据。它们只是不同表中行的包装器。

例子:

我有一个项目对象表。每个项目对象都有一个项目设置集合和一个项目类型字段。

有不同类型的项(文本、单选框、复选框),它们都使用抽象的 render() 方法进行不同的渲染。这些子类型中的每一个还具有该对象所需的一组特定项目设置。

如果我可以创建实体子类而不必将它们映射到数据库,我可以让 TextItem 成为 Item 的子类,实现我的 render() 方法和映射到每个的添加属性我的项目设置表中的值。然后,当我从数据库中提取新项目时,基于类型字段,它将根据鉴别器自动创建我的特定类。

我曾使用 DBML 做过这类事情。我想使用 Entity Framework ,因为它更强大,但可能没有办法实现我正在寻找的东西。

最佳答案

这称为逐层次结构表映射,EDMX 都可以实现和 code first .要真正让它发挥作用,您的子类必须被映射,因为 EF 必须知道它们的存在才能正确地将鉴别器值转换为正确的类型。整个类层次结构映射到单个数据库表。

关于c# - 将 Entity Framework 与自定义子类一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11417619/

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