我正在维护一个visual studio 2008应用程序(网站项目)。没有机会升级到更高版本的.NET框架或更高版本的实体框架。像许多IT商店一样,除非存在重大问题,否则人们不会允许我对系统进行重大升级。
.net框架是3.5。并且EF版本是1.0
我需要更改我的程序,因此我的选择linq语句将起作用
Calling a SQL User-defined function in a LINQ query
正如您所知,我需要将存储的函数作为select语句的一部分包含在内
所以我复制了这句话。
我已经挣扎了几个小时,而且我一直在编译。
//..various using statement
using System.Data.Objects.DataClasses;
using System.Data.Metadata.Edm;
//..other class
public static class EntityFunctions
{
[EdmFunction("FBLModel.Store", "SampleFunction")]
public static int SampleFunction(int param)
{
throw new NotSupportedException("Direct calls are not supported.");
}
}
我不断收到编译错误
错误CS0246:类型或命名空间名称' EdmFunctionAttribute'找不到(你错过了使用指令或汇编引用吗?)
我搜索了整个互联网包括stackoverflow和MSDN博客,名称空间看起来正确
有什么建议吗?谢谢
答案 0 :(得分:0)
这里的问题是你的命名空间引用了冲突。
System.Data.Objects.DataClasses
命名空间包含一个名为EdmFunction的类。 =index(B:B,row())
命名空间包含一个名为EdmFunctionattribute的类(您正在尝试使用它)。
由于某种原因,您的代码引用了EdmFunction类。尝试删除System.Data.Metadata.Edm的名称空间导入,因为您可能不想首先导入它。