【问题标题】:How to make SQL table property unique ( not repeatable)如何使 SQL 表属性唯一(不可重复)
【发布时间】:2014-03-13 06:11:06
【问题描述】:

我是 MVC 的新手,我正在使用 Microsoft Visual Studio。所以我有一个控制器可以将数据插入到我的 SQL 表中,其中包含 4 个属性 ID 名称 Broi 和 Cena。

[HttpPost]       
public ActionResult Table(ProductTable product)
{
  if (!ModelState.IsValid)
  {
    return View(product);
  }
  using (var contex = new DefaultConnection())
  {
    contex.Products.Add(product);
     contex.SaveChanges();                    
  }
  return View();            
 }

这是我的producttalbe类:

 [Table("ProductTable")]
 public class ProductTable
 {
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }
    public string Name { get; set; }
    public int Broi { get; set; }
    public int Cena { get; set; }
 }

但我想让 Name 属性唯一,这样它就永远不会重复,如果它重复调用我的视图中的消息,例如“这个名称已经存在”。我可以看到在制作表格时有一个名为“Not for replication”的属性,但我无法将其变为 true,它保持灰色且无法更改。

【问题讨论】:

    标签: c# mysql sql sql-server


    【解决方案1】:

    尝试将此属性添加到您的属性:

    [Unique(ErrorMessage="This Name already exists!")]
    public string Name { get; set; }
    

    here是如何实现Unique属性,here是另外一个扩展代码。

    【讨论】:

    • 当然,这是一个 link,解释了 MVC N.B. 中的验证。在该部分之后列出了另外三个部分。
    • 所以你的意思是 Unique 是你的自定义属性。
    • 不,here是如何使用数据标注属性
    • 我对如何使用数据注释属性有一个想法,但我不认为 Unique 是一个有效的属性。我认为你需要一些远程验证。
    • 将它们添加到您的答案中。
    猜你喜欢
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 2022-12-22
    • 2018-04-20
    • 2014-03-13
    • 2013-04-16
    • 1970-01-01
    相关资源
    最近更新 更多