我正在尝试执行以下操作: http://msdn.microsoft.com/en-us/library/dd456857.aspx
我在edmx文件中创建了函数,就在schema元素之前:
<Function Name="YearsSince" ReturnType="Edm.Int32">
<Parameter Name="date" Type="Edm.DateTime" />
<DefiningExpression>
Year(CurrentDateTime()) - Year(AppliedDate)
</DefiningExpression>
</Function>
</Schema>
现在,我希望能够在查询中使用它。 我在ApplicantPosition分部类
中创建了以下代码[EdmFunction("HRModel", "YearsSince")]
public static int YearsSince(DateTime date)
{
throw new NotSupportedException("Direct calls are not supported.");
}
我正在尝试进行以下查询
public class Class1
{
public void question()
{
using (HREntities context = new HREntities())
{
// Retrieve instructors hired more than 10 years ago.
var applicantPositions = from p in context.ApplicantPositions
where YearsSince((DateTime)p.AppliedDate) > 10
select p;
foreach (var applicantPosition in applicantPositions)
{
Console.WriteLine(applicantPosition.);
}
}
}
}
YearsSince未被识别,MSDN教程没有准确显示我需要放置函数的位置,因此这可能是我的问题。