- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 LINQ to Entities,我需要从年龄介于 AgesFrom 和 AgesTo 之间的 PersonTable 获取记录。问题是,我需要根据存储在数据库中的 DateOfBirth 和特定的 DateToCalculate 来计算他们的年龄。
例如。PersonTable:DateOfBirth=01/04/1972,DateToCalculateAge=25/12/2011
.Where(0 < o.FormDate.AddYears(-agesFrom).CompareTo(o.FormDate.Subtract(o.Person.DateOfBirth)) &&
0 > o.FormDate.AddYears(-agesTo).CompareTo(o.FormDate.Subtract(o.Person.DateOfBirth));
// ----------------------- OR ------------------------
.Where(agesFrom <= CalculateAge(o.Person.DateOfBirth.Value, o.FormDate) &&
agesTo >= CalculateAge(o.Person.DateOfBirth.Value, o.FormDate);
对于我提供的代码,我得到以下异常:“LINQ to Entities 无法识别‘System.DateTime AddYears(Int32)’方法,并且无法将此方法转换为存储表达式。”
我知道一旦 LINQ 将查询传递给数据库,我尝试使用的方法就无法翻译。有解决办法吗?我可以在访问数据库后进行过滤,但我想避免那种瓶颈。我也想过添加一个 sql 函数来为我做这个计算,但想先用尽 LINQ 的可能性。
这里有一篇不错的帖子详细介绍了如何在查询之前更好地进行年龄计算: Shortest way to check for age filter in LINQ?但是在我的情况下,我不是从 DateTime.Now 计算年龄,而是从数据库中的日期计算年龄。
最佳答案
由于您使用的是 LINQ to Entities,因此首选解决方案是使用 System.Data.Objects.EntityFunctions
中定义的方法。 (EF 版本 6 的更新:改用 DbFunctions
)并且查询表面会成功地将它们转换为 SQL。在这种情况下,你想采取例如这个:
o.FormDate.AddYears(-agesFrom)
.CompareTo(o.FormDate.Subtract(o.Person.DateOfBirth))
并将其转换成类似的东西
EntityFunctions.DiffMinutes(
EntityFunctions.AddYears(o.FormDate, -agesFrom),
EntityFunctions.AddSeconds(
o.FormDate,
EntityFunctions.DiffSeconds(o.FormDate, o.Person.DateOfBirth)
)
)
我不确定上面的内容是否真的正确,因为它真的伤害了我的眼睛。
关于.net - LINQ 到实体 : Age calculation in a LINQ query causes "Method cannot be translated into a store expression",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10601701/
我正在使用源代码中的Postgres 13(Rel_13_STRATE分支),并且我使用的是来自apachea/age源代码的(Release/PG13/1.3.0分支)中的1.3.0版的Apache
这是我正在使用的代码: 我想回显 $age 变量的值,但我总是得到“age”这个词。例如,代码应该回显 yourage: 5,但它会输出 yourage:age 最佳答案 首先,您需要运行 SELE
对于这门课, class Person { int age; public Person(int age) { this.age = age; } } 在我的课
我没用过 HTTP 缓存 . 我在 Symfony documentation page 上找到了这些缓存选项. 我只是想知道 expires 和有什么区别, max-age , 和 s-maxage
我正在参加关于 SQL 的 Cousera 类(class),但有一行代码我无法理解。 'hex(name || age)' 是什么意思?我知道它使用 hex() 函数将字符串转换为十六进制格式,但是
两个 header Cache-control: max-age=0 和 Cache-control: max-age=-1 之间的浏览器行为有何不同? 如果浏览器收到 max-age=0,它会立即重
请参阅这个最小示例: 标记 changePeople1Works changePeopleNotWorking {{$store.sta
RFC 2616 Sec 13.2.3给出如下年龄计算算法: apparent_age = max(0, response_time - date_value); corrected_received
像这样,我有一个对象: { 'person': { 'like': { 'color': 'red', 'food': 'rice' }, 'nam
类似这个问题: get CSS rule's percentage value in jQuery 但是,我正在编写一个插件,它需要根据最初指定宽度的方式优雅地处理它。如果元素最初是以像素为单位指定的
我必须使用子查询显示下表中的 Mothers_name、AGE 和平均年龄? 我试过了 SELECT Mothers_name, Age, AVG(Age) FROM
这个问题在这里已经有了答案: What is the purpose of the `self` parameter? Why is it needed? (26 个答案) 关闭 3 个月前。 我最
这里有一个问题要问“Matlab 中记录较少的部分的专家”:是否有一种(未记录的?)方法来确定图形已打开多长时间(即图形的“年龄”)? figure; spy; myfig=gcf; age=get_
有人可以澄清一下有关缓存的说法吗? https://developers.google.com/speed/docs/best-practices/caching说 It is redundant t
这个问题在这里已经有了答案: How to get an age from a D.O.B field in MySQL? (15 个答案) 关闭 7 年前。 我想进行选择查询以搜索最小和最大年龄之
我正在实现一个项目,在该项目中,我必须找到笼子中老鼠的最小值 和 k 年龄。 我使用的代码是: var earTags = ""; var miceAge = "";
我正在编写一个小程序,显示三位教授并打印其中一位最年长和最年轻的教授。我认为我的 if 语句是正确的,但它为两个语句打印出相同的名称。 public class app { /**
我在 PostgreSQL 9.6 转折日期计算中遇到了我的 SQL 代码的一些意外行为。在分析时,我发现 Postgres 不会总是返回相同的值返回 n 天,然后用 age() 计算持续时间。 考虑
我一直在寻找一种像 agerecord 列表一样工作的数据结构。如果没有比你更年轻的人得分更高,你就有了一个年龄记录。 所以我想要一个对 (a,b) 的列表,其中对于所有对 (a1,b1) 和 (
题目地址:https://leetcode.com/problems/friends-of-appropriate-ages/description/ 题目描述: Some people will
我是一名优秀的程序员,十分优秀!