如何使用 LINQ to Entities 包含另一个表中的一个特定行

2024-04-15

我有一个包含这两个表的数据库:Customer and CustomerStatus. CustomerStatus是所谓的只读表。对客户状态的所有更改都会导致插入到该表中。当前客户状态可通过以下方式找到CustomerStatus.StatusTimestamp.

现在我正在寻找一个 LINQ to 实体查询来加载所有客户及其当前状态。就像是

.Include("CustomerStatus.OrderByDescending(StatusTimestamp).FirstOrDefault()").

我还没有找到使用 EF 4.0 的正确方法。

我目前的解决方法非常难看,需要两个步骤:

步骤1:加载所有状态的LINQ查询(在业务/数据层):

var r = from c in db.Customers.Include("CustomerStatus") select c;

步骤 2:在 GUI 中获取每个客户的适当状态(在 MVC3 视图中的循环中):

c.CustomerStatus.OrderByDescending(i => i.StatusTimestamp).FirstOrDefault()

知道如何一步直接完成此操作吗?


EF 比您想象的更强大。它可以做的事情之一就是投影到复杂类型在一个IQueryable(即,在一个数据库命中)。这应该有效:

var data = 
    from c in db.Customers
    select new { 
        Customer = c, 
        LastStatus = c.CustomerStatus  // assuming navigation property set up right
                      .OrderByDescending(s => s.StatusTimestamp)
                      .FirstOrDefault()
    };

Now data is an IQueryable<anonymous_type>,并且每个项目都有一个Customer给予客户的财产,以及LastStatus给出最新时间戳状态,或者null如果没有该客户的任何状态记录。

您也可以在这里使用命名类型,这样对我来说输入速度更快:)。

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

如何使用 LINQ to Entities 包含另一个表中的一个特定行 的相关文章

  • C# 无法捕获 SerializationException

    我的程序在加载序列化文件的部分遇到问题 如果文件无法反序列化 我希望很好地失败 但由于某种原因 我的程序将中断而不是进入 catch 子句 这是我的代码 using FileStream fs new FileStream openFile
  • ContentDialog 未与 UWP 中心对齐

    据我所知 ContentDialog的默认行为应该是使其在 PC 上居中并在移动设备上与顶部对齐 但就我而言 即使在 PC 上我也将其与顶部对齐 但我不明白发生了什么 我正在使用代码隐藏来创建它 这是我正在使用的代码片段 Creates t
  • opencv中如何去除二值图像噪声?

    将图像转换为二值图像 黑白 后如果有任何噪音怎么办 我消除了那些不需要的噪音 您可以看到下图的黑色区域内有一些白噪声 我该如何去除噪声 使用opencv http img857 imageshack us img857 999 blackn
  • Linq 合并列表

    我的课 public class Foo public int A get set public List
  • 如何将STL容器数据转储到gdb中?

    我无法在 gdb 中转储 STL 无序映射容器值 变量类型是 std unordered map var 我的 gdb 版本 7 7 1 GDB配置 configure host x86 64 linux gnu target x86 64
  • 应用程序处于中断模式。您的应用程序已进入中断状态,

    我发现自己遇到了同样的问题here https stackoverflow com questions 36204009 disable break mode page in vs2015 我在 dll 中使用 Windows 窗体 这是针
  • 调用异步方法在视图模型的构造函数中加载数据有警告

    我的视图包含一个 ListView 它显示来自互联网的一些数据 我创建一个异步方法来加载数据并在我的视图模型的构造函数中调用该方法 它有一个警告提示我现在使用await关键字 还有其他解决方案可以在构造函数中异步加载数据吗 有几种可以应用的
  • 处理“未找到细胞”。 Excel 中的错误

    我正在使用 Excel VSTO 应用程序并使用以下代码在工作表中查找错误单元格 Excel Range rngTemp Excel Range rngErrorRange Excel Worksheet Sheet1 Excel Work
  • 如何让XmlReader读取C#中的属性?

    我有一个 XML Stream 其中包含以下 XML 内容
  • 我在使用 ado.net 时收到错误 Argument 2 may not be pass with ref keywords

    int t 0 cmd Parameters AddWithValue Res ref t 我在第二行收到错误 参数 2 不能与 ref 关键字一起传递 您只能通过引用传递参数ref if the 范围 is a ref参数也是如此 Add
  • 我可以将 UseCSharpNullComparisonBehavior 用于单个查询吗?

    我有一个查询 该查询曾经是存储过程 现已转换为 EF 查询 现在已经超时了 使用 SQL Profiler 我可以看到生成的 SQL 的唯一区别是 EF 转变的新行为entity Property value into entity Pro
  • 配置:错误:无法运行C编译的程序

    我正在尝试使用 Debian Wheezy 操作系统在我的 Raspberry Pi 上安装不同的软件 当我运行尝试配置软件时 我尝试安装我得到此输出 checking for C compiler default output file
  • 当需要不同数量和类型的参数时如何创建操作委托列表

    我们有一组大约两打的类 它们继承自具有抽象 Validate 方法的基类 当然 每个类都有不同的验证需求 但它们之间的不同组合需要规则 因此 正如您可以想象的那样 这导致了大量代码重复 例如 A 类需要规则 1 3 6 和 9B 类需要规则
  • 如何在 C# 中更改公共 IP 地址

    我正在创建一个 C winform 应用程序 我想在其中更改公共 IP 地址 而不是像 Hotspot Shield ZenMate OpenVPN 等那样更改 IPv4 地址 我已经检查了以下链接 但没有找到足够的帮助 所以我发布了这个问
  • 传递数组时在 C 中的函数参数中强制指定数组大小

    Context 在 C 中 我有一个以数组作为参数的函数 该参数用作该函数的输出 输出的大小始终相同 我会 让阅读代码的人清楚所需的大小 不过它已经在函数注释中了 理想情况下 编译会输出警告或错误 这样我就可以在编译时而不是运行时防止出现问
  • Gremlin.net 文本包含等效项

    我正在使用 Gremlin net 库连接到 janus 图形服务器 我使用 cassandra 和弹性搜索进行数据存储和索引 在我使用的 gremlin 语言和 gremlin 控制台中文本包含在属性的文本中进行搜索 我正在使用混合索引
  • Xcode 7 调试器不会中断内联标头函数

    过去五年我一直在各种 C 项目中使用 Xcode 没有出现这个问题 今天 我打开了一个较旧的项目 大约 2 年前 并尝试通过在该函数中放置一个活动断点来调试头文件中的内联函数 由于某种原因 调试器不会中断此代码 但是 如果我在调用该函数的
  • 使用多态对象数组进行 JSON 反序列化

    我在涉及多态对象数组的 JSON 反序列化方面遇到问题 我已经尝试过记录的序列化解决方案here https stackoverflow com questions 5186973 json serialization of array w
  • 在windows + opengl中选择图形设备

    我知道如何使用 openGL 打开窗口 使用 Win32 或其他工具包 但是当系统有2块显卡时 如何选择要渲染的图形设备 我的编程语言是 C 我专注于 Windows 但任何示例都将受到欢迎 编辑 也许更好地解释我的问题是个好主意 以便添加
  • 如何使用 C# 为 azure devops 变量赋值

    我有 selenium C 测试脚本 可以从浏览器获取令牌 我有两个 azure devops 任务 一个用于执行 selenium 测试 另一个用于执行 API 测试 我想将 selenium 测试获取的令牌传递给 API 测试执行任务

随机推荐

  • 找不到模块:错误:无法解析模块“semantic-ui-css”

    我正在尝试使用Webpack https webpack github io 语义用户界面 http semantic ui com 但没有成功 我试过 npm i semantic ui css In my index js import
  • OData / WCF 数据服务不适用于复杂类型

    我对 OData 和 WCF 数据服务是全新的 所以这可能是一个简单的问题 我正在使用 VS Web Developer Express 2010 其中我在控制台应用程序中托管了一个非常简单的 WCF 数据服务 它从存储库 位于单独的 dl
  • EditText 在 ListView 中滚动时丢失内容?

    我有列表项EditText里面不知道会有多少物品 当我输入一些文本时遇到问题EditText 然后向下滚动ListView 当我再次向上滚动后 我的第一个中没有文字EditText 或者有一些来自其他人的文字EditText from Li
  • 如何避免在 Java 中检查空值?

    I use x null避免NullPointerException https docs oracle com javase 9 docs api java lang NullPointerException html 还有其他选择吗 i
  • 通过匹配模式过滤日志 - log4j

    我的 log4j xml 文件中有以下布局模式 d ISO8601 c p t x 9 5 4 RC12 m n 我想要的是 每当我收到包含消息的日志时process proc completed 应该跳过 我的意思是除了包含此消息的日志之
  • 我的 if 语句有什么问题?

    我现在正在尝试探索帕斯卡 我遇到了一些编译器错误 我写了一个 if else if 语句 如下所示 if input y or input Y then begin writeln blah blah end else if input n
  • GCC 内联汇编错误:“‘int’的操作数大小不匹配”

    首先 如果有人知道标准 C 库的函数 则会打印 一个字符串 无需寻找二进制零 但需要绘制字符数 请告诉我 否则 我会遇到这个问题 void printStringWithLength char str ptr int n chars asm
  • .net 应用程序挂起。奇怪的崩溃转储

    生产服务器有一个 24x7 运行的应用程序 有时它开始消耗接近 50 的 CPU 我无法在本地重现它 但我用 adplus 做了内存转储 服务器有Windows 2008 Server 64位 NET 3 5 该应用程序侦听 MSMQ 并有
  • Python:将函数作为参数传递,并设置选项

    在Python中 我需要调用许多非常相似的函数相同的输入参数 sampleA and sampleB 唯一的问题是其中一些功能需要option需要设置 有些则没有 例如 import scipy stats scipy stats mann
  • VBA 中的简单递归函数与 Excel 未返回预期结果

    我有一个用 VBA 编写的简单递归函数 它执行以下操作 它必须计算我们必须采用参数 x 的对数来查找 log x 例子 logcount 5 log 5 0 6 所以函数应该返回 1 logcount 89 log 89 1 9 和 log
  • 不同日期的列表

    我有以下代码 List
  • Picasso + RxJava2:方法调用应该从主线程发生

    这是我最初的问题 我试图在其中显示一些图像AutoScrollViewPager 我正在使用毕加索来实现同样的目的 但是 我想使用 Rxjava2 Picasso 做同样的事情 我对 RxJava 概念有点陌生 因此 如果有人可以帮助我提供
  • 无法让 Docker 容器相互通信

    我有两个 Docker 容器 一个运行 React 应用程序 使用 create react app 构建 另一个运行 Node 应用程序 API 我设置了一个 docker compose 文件 并根据文档 https docs dock
  • 每次引发异常时调用钩子函数

    假设我希望每次在程序中的任何位置引发任何异常时都能够记录到文件中 我不想修改任何现有代码 当然 这可以推广到每次引发异常时都能够插入一个钩子 下面的代码做这样的事情被认为是安全的吗 class MyException Exception d
  • D3:细化序数比例以返回颜色组?

    我已经设置了一个序数尺度D3 js https github com mbostock d3 wiki API Reference如下 到目前为止效果很好 var color d3 scale ordinal range blue red
  • 当用户导航到一个域内的其他页面时,谷歌分析如何跟踪事件

    在 Google 的文档中 据说可以通过以下方式跟踪事件 a click me a 或旧版本 a click me a 我正在使用 Firebug 查看单击链接时发出的请求 我看到有中止的请求 http www google analyti
  • 从对象中获取数据

    我正在尝试使用此代码从用户的 Twitter 帐户获取数据 user info twitteroauth gt get account verify credentials 我在一个对象中得到一个很长的值 stdClass Object i
  • java中的子包类可以访问父包类吗?

    在java父包类中可以从子包类访问吗 请给我解释一下吗 例子 包 A A1 A2 包含类 sub 包A包含类sup 有没有办法从 sub 访问 super 请解释一下 我尝试导入它不起作用 例子 在程序目录结构之前 package1 包含
  • 为什么每次保存文件时 vim 都会创建一个新文件?

    我有一个名为test test mypc ls i 4982967 test 然后我使用vim更改其内容并输入 w来保存它 它现在有一个不同的索引节点 test mypc ls i 4982968 test 这意味着它已经是一个不同的文件了
  • 如何使用 LINQ to Entities 包含另一个表中的一个特定行

    我有一个包含这两个表的数据库 Customer and CustomerStatus CustomerStatus是所谓的只读表 对客户状态的所有更改都会导致插入到该表中 当前客户状态可通过以下方式找到CustomerStatus Stat