使用LINQ和实体框架显示基于年龄的成员详细信息

本文关键字:于年龄 成员 详细信息 显示 LINQ 实体 框架 使用 | 更新日期: 2023-09-27 18:08:40

我正在尝试检查某个年龄段的人。我有两个组合框,minagecombobox和maxagecombobox,值在1和120之间。

我想获得年龄在这两个值之间的人(例如,假设我想过滤掉年龄在18到24岁之间的人)。

这是成员表的结构:

member_id
member_firstname
member_dob(datatype is string)

我的实体名称是dbcontext。我正在使用实体框架和LINQ实体

使用LINQ和实体框架显示基于年龄的成员详细信息

只需计算年龄并将其与您期望的年龄间隔进行比较。年龄计算并不是最好的,但作为一个例子已经足够好了:

DateTime now = DateTime.Now;
int min = 18, max = 20;
var res = 
    from m in Member
    let Age = System.Data.Objects.SqlClient.SqlFunctions.DateDiff("y", t.member_dob, now)
    where Age >= min && Age <= max
    select m;
DoBConverted = (Today's date - age(in years)) // in datetime

会显示出生日期。

类似地,解析DoB (string)来获取datetime。

您可以使用dob值(min dob和max dob)执行检查以获取记录。

int minAge = 18, maxAge=20;
DateTime convertedMinDob = DateTime.Now.AddYears(-minAge);
DateTime convertedMaxDob = DateTime.Now.AddYears(-maxAge);
Console.WriteLine(convertedMinDob.ToString() + " " + convertedMaxDob.ToString());
string strDate = "1/1/1995";
DateTime actualDate = DateTime.Parse(strDate);
bool valid = actualDate >= convertedMaxDob && actualDate <= convertedMinDob;
Console.WriteLine(valid? "In range": "Out of range");