'System.Data.Metadata.Edm.EdmFunction'不是属性类

问题描述 投票:0回答:1

我正在维护一个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'(您是否缺少using指令或程序集引用?)

我搜索了整个互联网包括stackoverflow和MSDN博客,命名空间看起来正确

enter image description here

有什么建议?谢谢

c# entity-framework linq edmx
1个回答
0
投票

这里的问题是你的命名空间有一个冲突的引用。

System.Data.Metadata.Edm命名空间包含一个名为EdmFunction的类。 System.Data.Objects.DataClasses命名空间包含一个名为EdmFunctionattribute的类(您正在尝试使用它)。

出于某种原因,您的代码引用了EdmFunction类。尝试删除System.Data.Metadata.Edm的名称空间导入,因为您可能首先不想导入它。

© www.soinside.com 2019 - 2024. All rights reserved.