gpt4 book ai didi

asp.net - 如何使用 EntityDataSource 中的 CASE 语句进行排序?

转载 作者:行者123 更新时间:2023-12-04 06:06:33 29 4
gpt4 key购买 nike

我正在使用 CASE在我的 EntityDataSource 语句中进行自定义排序。考虑以下代码:

<asp:EntityDataSource ID="myEntityDataSource" runat="server" 
ConnectionString="name=MySQLEntities1"
DefaultContainerName="MySQLEntities1"
EnableFlattening="False"
EntitySetName="Persons"
EntityTypeFilter="Persons"
OrderBy="it.[Pack],
CASE it.[Type]
WHEN 'MAN' THEN 1
WHEN 'VROUW' THEN 2
WHEN 'KIND' THEN 3
END,
it.[BirthDate] ASC" />

在 T-SQL 中,这将是一种完美的正常排序方式,但用于 EntityDataSource它抛出以下异常:

The query syntax is not valid. Near identifier 'it', line 11, column 21.



我怎样才能让这种类型的排序在我的 EntityDataSource 中工作?

最佳答案

我今天也在尝试同样的事情。我在实体 SQL 引用站点上发现您显然必须使用 CASE WHEN并且不能使用 CASE [value] WHEN .这种方法虽然不像在 T-SQL 中那样,但确实对我有用。所以你的代码应该是这样的:

<asp:EntityDataSource ID="myEntityDataSource" runat="server" 
ConnectionString="name=MySQLEntities1"
DefaultContainerName="MySQLEntities1"
EnableFlattening="False"
EntitySetName="Persons"
EntityTypeFilter="Persons"
OrderBy="it.[Pack],
CASE
WHEN it.[Type] = 'MAN' THEN 1
WHEN it.[Type] = 'VROUW' THEN 2
WHEN it.[Type] = 'KIND' THEN 3 END, it.[BirthDate] ASC" />

MSDN Entity SQL Reference: 'CASE'

关于asp.net - 如何使用 EntityDataSource 中的 CASE 语句进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8279571/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com