entity framework 添加唯一约束

当尝试在Entity Framework中为字段添加唯一约束时,可能会遇到错误:'COLUMN_NAME' in table 'dbo.TABLE_NAME' 的类型对于索引键列无效。问题在于约束不能超过8000字节。解决方案是在代码第一模型中使用[MaxLength(450)]属性限制字段长度。
摘要由CSDN通过智能技术生成

当在字段前添加唯一约束时,会报如下错:

EntityFramework: Column ‘COLUMN_NAME’ in table ‘dbo.TABLE_NAME’ is of a type that is invalid for use as a key column in an index

[Index(IsUnique=true)]
public string MacAddress { get; set; }

Error Message:

Column 'MacAddress' in table 'dbo.AspNetUsers' is of a type that is invalid for use as a key column in an index.


Reason of the problem
This error is because the unique constraint can’t be over 8000 bytes per row and will only use the first 900 bytes even then so the safest maximum size for my field would be 450 characters.


Solution to the problem
To add this limitation in code first model just add the [MaxLength(450)] attribute to your property as shown in the code below.

[Index(IsUnique=true)]
[MaxLength(450)]
public string MacAddress { get; set; }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值