如何使SQL表属性唯一(不可重复)

时间:2014-03-13 06:11:07

标签: c# mysql sql sql-server

我是MVC的新手,我正在使用Microsoft Visual Studio。所以我有一个控制器将数据插入到我的SQL表中,其中包含4个属性ID Name 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();            
 }

这是我的产品类:

 [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属性为Unique,所以它永远不会重复,如果它重复在我的视图中调用消息,如“此名称已存在”。我可以看到在制作表时有一个名为“不用于复制”的属性,但是我无法将其变为true,它保持灰色并且我无法更改它。

1 个答案:

答案 0 :(得分:0)

尝试将此属性添加到您的媒体资源中:

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

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