实体框架继承:按类型排序/分组?

2023-12-28

实体框架(以及我使用它的 RIA 服务)很好地支持继承。数据库映射可以是单表或多表,并且在第一种情况下,数据库表包括包含类型指示符的指示符列。

显然,这个指示符在模型中是不可见的,尽管人们希望使用它来进行排序和分组。

如果这是我想要做的,我是否必须在基类中引入一个额外的显式类型指示符,或者是否有更好的方法以某种方式按类型排序或分组?

我正在使用 EF5。


是的,我可以想象您需要基本类型列表的场景。不幸的是,无法在概念模型中获得鉴别器(指示符)。我能想到的唯一方法就是

db.BaseObjects.Where(b => ...)
  .AsEnumerable().Select (b => new {b.GetType().Name, b } )

之后,您可以按类型名称进行排序/分组。但你不能投影(Select) 之前AsEnumerable,所以限制数据大小的唯一方法是过滤(Where).

有一个技巧可以将鉴别器列作为类模型中的可见属性。您可以创建一个计算列 http://msdn.microsoft.com/en-us/library/ms191250%28v=sql.105%29.aspx在表中,仅显示真实鉴别器列的值,并将其映射到标记为的属性DatabaseGeneratedOption.Computed.

注意,这需要特别注意 http://geekswithblogs.net/DavidPaquette/archive/2012/09/23/calculated-columns-in-entity-framework-code-first-migrations.aspx代码优先(迁移)。插入和更新需要一定的性能,因为 EF 之后必须从数据库读取值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体框架继承:按类型排序/分组? 的相关文章

  • TransactionScope - 底层提供程序在 EnlistTransaction 上失败。 MSDTC 正在中止

    我们的团队遇到了一个问题 表现为 底层提供者在 EnlistTransaction 上失败 无法访问 已处置对象 对象名称 事务 这似乎是我们一开始使用就出现的交易范围 http msdn microsoft com en us libra
  • 首先EntityFramework数据库 - 类型映射 - 将binary(8)从SQL映射到C#中的int

    在 SQL 内部 我有一个主键为二进制 8 的表 当我使用该表添加到我的模型中时Update Model from Database我可以看到该列有 type Binary 在 C 中 我将该列设为byte 我可以将该列映射到 int 吗
  • 无法找到请求的.Net Framework 数据提供程序。 (Sql客户端)

    我正在尝试使用来自 SQL Server 2005 的 DB First 迁移来设置一个简单的 ASP NET MVC 4 Web 应用程序 我已经在数据库中创建了表 并使用实体框架在代码中创建了对象 我可以使用这些对象访问数据 当我尝试使
  • 使用实体框架存储库返回多个结果集

    我正在编写一个代码 其中我需要多个表作为存储过程的结果 我正在使用实体框架存储库模式 它返回并绑定一个 IEnumerable 对象 但我需要同时将它与多个 IEnumerable 绑定 有人可以帮忙吗 这是我正在使用的代码 db Data
  • 即使定义了其他主键,实体框架 6 也会创建 Id 列

    我将 DataObject 定义为 public class SensorType EntityData PKs public string CompanyId get set public string ServiceId get set
  • ASP .NET MVC 5 - 客户地址一对一关系

    我在这里查看了论坛 实际上发现了一些类似的问题 但不是相同的问题 类似的解决方案没有给我正确的答案 我正在使用实体框架和代码优先方法来处理 ASP NET MVC 5 我想建立客户 gt 地址一对一关系的模型 我建模的是 客户等级 publ
  • 如何在实体框架中保存子关系实体

    我有一个实体框架 v1 项目 我有两个实体 角色和权限 它们彼此之间具有多对多关系 我传入一个要保存的对象 通过 WCF 调用 我自己不从上下文创建它 该对象在多对多关系中具有新条目 我使用 context ApplyPropertyCha
  • 使用 EF 6 和 MVC 5 中的 Code First 方法将新表添加到现有数据库

    我知道这应该很简单 但我无法在网上找到有关此主题的正确教程或解释 有很多关于使用代码优先方法向现有表添加新列的视频和帖子 但我找不到任何关于如何将整个新表添加到现有数据库的分步说明 这很奇怪 我很确定我会找到很多例子 也许我的搜索条件不好
  • EF 6:映射复杂类型集合?

    EF 6 代码优先 是否支持复杂类型集合 值对象集合 映射 我知道它支持复杂类型 但还没有找到我们拥有复杂类型集合的示例 例如 假设您有一个名为 Student 的实体 其中包含联系人集合 对于 NH 我可以简单地说 Student 有一个
  • “等待操作超时”...但仅来自 .NET 客户端?

    我有一个查询 当从我的应用程序执行时会抛出 SqlException 0x80131904 超时已过期 操作完成之前超时时间已过 或者服务器没有响应 在 Visual Studio 中单步执行代码时 我遇到了同样的错误 但是 当使用相同的凭
  • AssociationSet 中的关系处于“已删除”状态

    我正在尝试在我的网站中创建新帖子 但由于某种原因 EF 抛出以下错误 来自 PostAttributeValue Definition 关联集的关系 处于 已删除 状态 给定多重约束 相应的 PostAttributeValue Defin
  • EF6 找不到 LocalDBConnectionFactory

    我有 2 个项目 类库 作为 DAL 层 和 ASP NET MVC 项目 作为 UI 为了获取数据 我尝试使用 EF6 但它不起作用 所有异常文本 EntityFramework dll 中发生 System InvalidOperati
  • 对于相同的数据库对象,实体框架对象引用是否相同

    如果我从不同位置查询 逻辑上 在数据库中 相同的对象 实体框架是否返回相同的对象引用 例如 我查询了名为 Joe Black 的客户 并假设现在我知道数据库中只有一个 Joe Black Customer c select blabla w
  • WPF TreeView 绑定[重复]

    这个问题在这里已经有答案了 我有一个带有父级和子级属性的课程 ADO NET 实体框架分层页面类 http img148 imageshack us img148 6802 edmxxe8 gif http img148 imageshac
  • EF Core 第二级 thenIninclude 错误

    假设首先有这些模型 Method有一个OriginalCode OriginalCode那有很多Mutants Mutant那有很多ParseSubTrees 现在当查询时Method我希望加载另一个 所以我有以下内容 Method tar
  • 实体框架中空值的左连接

    我需要使用实体框架在 C 项目中执行 10 次左连接 我已经检查了至少 10 个不同的页面和 stackoverflow 帖子来了解如何执行此操作 他们都没有工作 我当前的加入如下所示 from tbl1 in context tblNam
  • 使用 DbContext 进行模型优先,无法初始化新数据库

    我放弃 我找到了这个 http blogs msdn com b adonet archive 2011 03 15 ef 4 1 model amp database first walkthrough aspx http blogs m
  • 有没有更好的方法使用 MVC 4 和 Entity Framework 5 添加子记录?

    我正在学习 MVC 并结合实体框架处理其无状态性质 我的问题是 有没有更优雅的方式来处理下面的场景 我有两个 POCO 实体 public class Contest public long ID get set public IColle
  • 带有自定义鉴别器的 EntityFramework Code First 继承

    我正在尝试在 EntityFramework Code First 中映射以下继承 public class Member public string ProjectName get set public string AssemblyNa
  • 使用实体框架重叠约会

    我将 asp net mvc 与实体框架一起使用 我有一个包含 startat 字段 endat 字段和 roomid 字段 称为 SpaceConfigurationId 的约会列表 并且希望查找给定房间已重复预订的约会列表 可以假设 e

随机推荐

  • Python + Pandas + Dataframe:Keyerror

    I have about 190 CSV s each of which has same column names A sample csv shared below From everycsv 我需要选择only the Item Pr
  • characteristic.getDescriptor() 返回 null

    我正在将 BLE 计步器连接到 Android 当我在 setCharacteristicNotification 函数中执行以下行时 我得到的描述符为 Null BluetoothGattDescriptor descriptor cha
  • 单选按钮显示/隐藏内容

    我试图在没有 javascript 和单选按钮的情况下实现显示 隐藏结果 我已经设法到达这部分
  • 为 Android 设置 PC 蓝牙服务器 [重复]

    这个问题在这里已经有答案了 可能的重复 在Android上使用蓝牙服务发现失败异常 https stackoverflow com questions 3397071 service discovery failed exception u
  • 为什么会打印 12 次?

    我正在学习Perl的多线程 我的代码 use warnings use threads use threads shared howmany 10 threads 5 to int howmany threads for 0 threads
  • 权限被拒绝 - Sparklyr 中的 \tmp\hive

    我正在尝试使用将 R 数据帧复制到 Spark 2 0 1copy to功能但它说 HDFS 上的根暂存目录 tmp hive 应该是可写的 当前权限为 rw rw rw 我执行了执行程序更改权限 但我仍然得到相同的权限异常 HADOOP
  • Gradle - 如何排除 /src/test/java 上的 Findbug

    有没有办法排除 src test java 下的类上的 Findbugs 执行 我尝试了以下方法 但似乎不起作用 classes classes filter it path contains classes test org Sure 文
  • 如何将阿拉伯语设置为区域设置

    我正在研究文本到语音的转换 为此 我从网上找到了这个例子 在此他们将英语设置为setLanguage Locale US 所以 现在我尝试设置阿拉伯语而不是英语 但是当我将语言更改为阿拉伯语时 我失败了 任何人都可以帮我将语言更改为阿拉伯语
  • Rails:避免 Factory Girl 中的重复错误...我做错了吗?

    假设我有一个模型user 它有唯一性约束email field 如果我打电话Factory user 一旦一切顺利 但如果我第二次调用它 它将失败并出现 条目已存在 错误 我目前正在使用一个简单的帮助程序在创建工厂之前搜索数据库中的现有条目
  • 简单的 IIS URL 重写

    简单的问题 我需要将特定子域 URL 上的所有 http 80 和 https 443 请求重定向到备用 SSL 端口 https 444 例子 http sub corp com http sub corp com gt https su
  • SQL Server查询优化?

    我有以下查询 SELECT tl d FROM TrackerLocations AS tl inner join Trackers t on tl TrackerId t TrackerId inner join Devices d on
  • Webkit边框半径结合css3 translate3D出血

    我在基于 Webkit 的浏览器上遇到一个问题 如果我向 div 添加边框半径 然后将 moz translate3d 应用于内部的 ul 这是因为在原始示例中我使用的是 flexslider 幻灯片 边框radius 不适用并且会穿过容器
  • 在 _Layout.cshtml 中将 Layout 设置为 null

    您是否有理由希望在 Layout cshtml 中将 Layout 属性设置为 null 比如像这样 在渲染body view之前 section Layout null RenderBody section 对我来说这似乎很荒谬 删除行设
  • 扩展 Angular 2 ngModel 指令以使用可观察量

    角2ngModel指令适用于变量和函数 例如
  • 类型约束“XYZ”已创建

    我想用一个Moose Util TypeConstraints https metacpan org pod Moose Util TypeConstraints在我的应用程序中 所以我在我的main pl main pl use Moos
  • 使用Java锁定屏幕

    基本上我只需要创建一个应用程序 具有某种用户访问权限 其第一个屏幕是一个全屏窗口 如果不输入有效的用户名和密码 则无法最小化或关闭该窗口 类似于 Windows 屏幕保护程序 能做到吗 我应该查看哪些图书馆 这就是我所需要的 如果我的问题不
  • 将数值列表映射到颜色

    我有一个数值列表 如果需要的话我可以标准化这些值 我需要将此列表转换为颜色列表 在 HSL RGB 或任何其他颜色模型中 我可以稍后进行转换 对于任何给定值 颜色每次都必须相同 两个给定数值越不同 对应值的对比度就应该越大 所有使用的颜色必
  • JavaFX:控制器可以是抽象类吗?

    我已经研究这部分代码一天了 只是无法弄清楚为什么它总是生成错误 我有一个控制器和 FXML 他们工作得很好 然后我想到我想通过抽象 updateSelect 函数重用这个特定的控制器 因此 我将控制器更改为抽象 代码编译得很好 直到我尝试运
  • ARC 子类上的超级释放

    在 ARC 中我知道你不会打电话 super dealloc 在任何覆盖 dealloc 所以通常我会删除其中的观察者和计时器而不这样做 但是 如果我要对我制作的发布观察信息的视图进行子类化 dealloc不打电话 super deallo
  • 实体框架继承:按类型排序/分组?

    实体框架 以及我使用它的 RIA 服务 很好地支持继承 数据库映射可以是单表或多表 并且在第一种情况下 数据库表包括包含类型指示符的指示符列 显然 这个指示符在模型中是不可见的 尽管人们希望使用它来进行排序和分组 如果这是我想要做的 我是否