如何为dateTime创建linq表达式。

发布于 2025-02-06 17:23:49 字数 802 浏览 4 评论 0原文

如何为dateTime.date创建linq表达式?

例如:

var query = CollectionQuery.OrderBy(c => c.CreatedAtUtc.Date); // where CollectionQuery is User type
var expressions = query.Expression;

当我调试时,我发现表达式包含表达式QUOTE

“在此处输入图像描述”

我希望它是动态的,因此我使用system.linq.expression (EF Core 2.2)

ParameterExpression arg = Expression.Parameter(typeof(User), "c");
var memberExpression = Expression.Property(arg, "CreatedAtUtc");
var quoteExpression = Expression.Quote(memberExpression); // no parameter to set .Date

我的问题是我无法用.date创建一个表达式 - 我该怎么做?谢谢。

How to create Linq Expression for DateTime.Date?

For example:

var query = CollectionQuery.OrderBy(c => c.CreatedAtUtc.Date); // where CollectionQuery is User type
var expressions = query.Expression;

When I debug I found expressions contain expression type Quote:

enter image description here

I want it to be dynamic so I use System.Linq.Expression (EF Core 2.2)

ParameterExpression arg = Expression.Parameter(typeof(User), "c");
var memberExpression = Expression.Property(arg, "CreatedAtUtc");
var quoteExpression = Expression.Quote(memberExpression); // no parameter to set .Date

My problem is I cannot create an expression with .Date - how can I do this? Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

画离情绘悲伤 2025-02-13 17:23:49

@Jeremy Lakeman建议

ParameterExpression arg = Expression.Parameter(typeof(User), "c");
var memberExpression = Expression.Property(Expression.Property(arg, "CreatedAtUtc"), "Date"); // add this line
var labmdaExpression = Expression.Lambda<Func<T, DateTime>>(memberExpression, arg);
var quoteExpression = Expression.Quote(labmdaExpression);

我在调试上查看FuncoreXpression时,它将显示

”在此处输入图像说明”

after @Jeremy Lakeman suggest

ParameterExpression arg = Expression.Parameter(typeof(User), "c");
var memberExpression = Expression.Property(Expression.Property(arg, "CreatedAtUtc"), "Date"); // add this line
var labmdaExpression = Expression.Lambda<Func<T, DateTime>>(memberExpression, arg);
var quoteExpression = Expression.Quote(labmdaExpression);

when I look into quoteExpression on debug it will show

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文