gpt4 book ai didi

c# - 数据库优先方法中的唯一约束

转载 作者:行者123 更新时间:2023-11-30 22:09:46 24 4
gpt4 key购买 nike

我的数据库有很多独特的限制。

我知道 Entity Framework 对它们一无所知。所以我需要手动将它们添加到模型中。但是在

System.ComponentModel.DataAnnotations

没有唯一关键字。

我创建了新属性:

[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
public class UniqueKeyAttribute : Attribute
{
}

并将其添加到我的模型中:

[MetadataType(typeof(DeviceInstance))]
public partial class DeviceInstance
{
public int Id { get; set; }
[Required]
public int DeviceId { get; set; }
[Required]
[UniqueKey]
[MaxLength(50)]
public string SerialNo { get; set; }
[Required]
public System.DateTime CreationDate { get; set; }
}

即便如此Model.IsValid 始终返回 true,即使表中已经存在该值也是如此。

我应该写什么代码来改变这种行为?

最佳答案

您的问题的一个简单答案是 Entity Framework 不支持唯一键,因此唯一的方法是在数据库中设置唯一约束(实际上您就是这样做的)。通过这样做,当您尝试在数据库中插入/更新新行以防缺乏唯一性时,将抛出适当的异常,然后您可以捕获并处理这些异常。

关于c# - 数据库优先方法中的唯一约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21349055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com