【问题标题】:How can I implement select case in Entity Framework?如何在实体框架中实现选择案例?
【发布时间】:2011-10-14 21:05:46
【问题描述】:

我在 SQL 中使用 CASE 进行查询,如何使用 Entity Framework 进行查询?

 DECLARE @SystemTypeId int
 SELECT @SystemTypeId = [SystemTypeId] FROM [Properties] WHERE [Id] = @PropertyId

 SET @RETURN_VAL =
 CASE @SystemTypeId
  WHEN 2 THEN (SELECT [Created] FROM [Assets] WHERE [Id] = @AssetId) 
  WHEN 3 THEN (SELECT dbo.GetAssetValueById([CreatedBy])
               FROM [Assets]
               WHERE [Id] = @AssetId)
  WHEN 9 THEN (SELECT [LastModified]
               FROM [Assets]
               WHERE [Id] = @AssetId)
  ELSE NULL
END

【问题讨论】:

    标签: linq entity-framework entity-framework-4


    【解决方案1】:

    当您使用 ? : 运算符时,Linq-to-Entities 不会为您生成 CASE 语句,除了二进制 CASE 语句。

    您可以在两个查询中运行它:首先获取 SystemTypeId,然后运行相应的查询。

    或者您可以绕过 Linq 并运行原始 SQL,如果您有复杂的查询,这通常是最好的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多