有没有办法在使用实体框架 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