【发布时间】:2009-08-13 17:27:28
【问题描述】:
我有一个实体集,该实体集具有包含 ID (GUID) 和 CreatedAt (DateTime) 的复合键的实体。此 CreatedAt 是创建实体的时间。每个记录代表每个实体的每个版本,因此多个记录可以具有相同的 ID。
我想创建一个可重复使用的 IQueryable-returning 方法,以便它只返回所请求实体的最新版本,但我正在努力寻找答案(如果确实有答案)。
我知道我可以写一个查询比如
(from e in context.Entities where e.ID = myID orderby e.CreatedAt).FirstOrDefault();
但我希望能够这样做:
(from e in context.GetCurrentEntities() where e.ID = myID).FirstOrDefault();
这样它只会返回所需实体的最新版本。
这可行吗?
非常感谢您的帮助。
李
【问题讨论】:
-
dahlbyk 和 Craig Stuntz 已经为您提供了有关您正在尝试做的事情的正确答案。 +1 伙计们。我在想,看看编译的查询在性能方面是否更适合你。另外,我推荐 RP 是因为上下文类有责任提供 IMO 不应赋予上下文的功能。
标签: linq entity-framework