2

有没有办法在使用实体框架 v2 时从 LINQ 调用 SQL Server 用户定义函数到实体?

我找到了一种使用 Entity Framework 4 的方法(此博客文章中解释了所有内容,但似乎 EdmFunctionAttribute 类在 EF4 中不可用 :(

如果不可能,在 LINQ to entity 中编写复杂的 where 子句的最佳方法是什么?这是我的功能的摘录,向您展示它的复杂程度:

IF @ageOfReferenceType = 3 or @ageToCompareType = 3 -- if one is expressed in weeks
    BEGIN
        --convert both to weeks
        SET @ageOfReference = @ageOfReference * CASE @ageOfReferenceType
                WHEN 1 THEN 52
                WHEN 2 THEN 4
                WHEN 3 THEN 1
            END
        SET @ageToCompare = @ageToCompare * CASE @ageToCompareType
                WHEN 1 THEN 52
                WHEN 2 THEN 4
                WHEN 3 THEN 1
            END
    END
    ELSE -- last solution, one is in years and the other in months
    BEGIN
        -- convert both to months
        SET @ageOfReference = @ageOfReference * CASE @ageOfReferenceType
                WHEN 1 THEN 12
                WHEN 2 THEN 1
            END
        SET @ageToCompare = @ageToCompare * CASE @ageToCompareType
                WHEN 1 THEN 12
                WHEN 2 THEN 1
            END
    END
END
IF @ageToCompare >= @ageOfReference
BEGIN
    RETURN 1
END
4

1 回答 1

0

我的问题似乎没有解决方案,所以我将把整个 linq 到实体查询封装到一个存储过程中,该过程将能够调用我的 UDF。

于 2012-11-14T11:30:13.300 回答