我正在尝试将列作为我模型中的唯一键。
我的代码是:
public class Customer
{
[Index("abcd",IsUnique = true)]
public int CustomerID { get; set; }
}
我正在使用以下参考资料:
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
还在我
Error 103 The type or namespace name 'IndexAttribute' could not be found (are you missing a using directive or an assembly reference?)
我错过了什么吗? 我使用的是EF 6.1版本
提前致谢
答案 0 :(得分:4)
改写我的回答。 (如果现在允许缩短URL,则道歉)
在.net 4.5中,Index属性仅存在于文件(EntityFramework.dll)
中Dll System.ComponentModel.DataAnnotations.Schema不包含Index属性
EntityFramework.dll version 6或更高版本包含此属性
浏览到文件EntityFramework.dll并添加一个引用,错误将消失,代码将编译。
命名空间System.ComponentModel.DataAnnotations.Schema也是此EntityFramework.dll的一部分
我认为它是微软的错误,可能会在.net 5中得到纠正
答案 1 :(得分:2)
右键单击项目参考部分
然后在弹出的左侧菜单中点击添加参考,选择装配
检查System.ComponentModel.DataAnnotations
dll
在代码中导入以下命名空间
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
答案 2 :(得分:1)
你需要确保在模型类所在的项目中引用了EntityFramework - 我将模型类从我的MVC网站移到了一个单独的DLL中,但我认为因为IndexAttribute在System.ComponentModel中它位于System.ComponentMode.DataAnnotations程序集中的.DataAnnotations.Schema命名空间 - 它实际上位于EntityFramework程序集中,因此您需要引用。
感谢Animuson指出这一点。
答案 3 :(得分:0)
解决方案: 只需在需要使用IndexAttribute的每个项目中安装Entity Framework。
分步说明:
Install-Package EntityFramework -Version 6.2.0 -ProjectName MyProject