gpt4 book ai didi

c# - EF 5 忽略 Int 类型的 [Required] 属性

转载 作者:太空狗 更新时间:2023-10-29 19:52:00 24 4
gpt4 key购买 nike

Entity Framework 5.0.0 在包含在 int 字段上时似乎忽略了 [Required] 属性,并自动包含 0 值而不是抛出异常。如果字段是字符串,则 required 属性似乎确实有效。下面的简单模型和创建函数不会抛出异常。为简洁起见,未显示具有 DbSet 度数的 DbContext 类。

public class Degree
{
public int Id { get; set; }
public string Name { get; set; }
[Required]
public int Field { get; set; }
}


private static void CreateDegree()
{
var degree = new Degree { Name = "Mechanical Engineering" };
var db = new Context();
db.Degrees.Add(degree);

// try statement
}

这可能是我的一个简单误解,但我们将不胜感激任何想法/帮助。

最佳答案

[Required] 属性表示必须存在一个值。当构造 Degree 时,Field 被初始化为 0,因为这是 int 的默认值。由于 0 是一个值,因此它满足 [Required] 属性。

您可能想尝试使用 [Range] 属性来指定值必须大于 0。或者您可以将模型更改为具有 int?,这样它将是 null 除非它被初始化为某个值。

关于c# - EF 5 忽略 Int 类型的 [Required] 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12868017/

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