【问题标题】:Entity Framework, Only selecting newest reference entry of table [duplicate]实体框架,仅选择表的最新参考条目[重复]
【发布时间】:2015-04-24 22:42:45
【问题描述】:

很难解释,但目前我有一个 SQL 数据库,其中有一个名为 股票。有些表引用了 Stock 表,例如 Rating,其中同一股票可能有多个结果。

现在,当我使用 EF 从我的数据库中查询特定股票时,我会收到我的主要对象以及 Ratings 列表。

我的库存表:

  • 身份证
  • 姓名

我的股票评级表:

  • 身份证
  • 库存编号
  • 结果
  • 时间戳

如何只选择 Rating-table 的最新条目,所以我只有一个对象,而不是附加到我的 Stock 对象的整个条目列表?

【问题讨论】:

  • FirstOrDefaultOrderBy 的组合日期列?如果不提供您的实体和表格,就很难为您提供准确的答案。
  • “StockRating”表的每条记录都有一个时间戳。但是我根本不习惯实体框架的语法。它必须是这样的:(From s In db.Stocks Select s, x.StockRating.OrderByDescending(Function(t) t.Timestamp).FirstOrDefault).ToList 但这使得输出列表成为匿名对象列表:/跨度>
  • 嗯,它不是专门的 EF,只是 Linq。不确定是否从一对多关系返回单个实体。可以放置一个 NotMapped 属性,该属性从 Stock 实体的 Ratings 集合中获取最新条目。主要问题是,如果您有很多您不想加载的评分。

标签: c# vb.net entity-framework


【解决方案1】:

如果您有StockId,则查询StockRating 表。

Dim query = model.StockRating.Where(Function(sr) sr.StockId = _stockId)
                 .OrderByDescending(Function(o) o.Timestamp).FirstOrDefault 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    相关资源
    最近更新 更多