Is it possible to set a unique constraint using Entity Framework Code First?

℡╲_俬逩灬. 提交于 2019-11-28 02:24:10

问题


I want to enforce Unique constraint in a table & I am using Entity Framework Code-First.

Is it possible to add a unique constraint using EF 6 as i believe in earlier versions it was not possible.


回答1:


It appears that the unique constraint feature that was scheduled to release with Version 6 got pushed to 6.1.

With EF 6.1, you can define a constraint using the Index attribute as shown below:

[Index("IX_FirstAndSecond", 1, IsUnique = true)]
public int FirstColumn { get; set; }

[Index("IX_FirstAndSecond", 2, IsUnique = true)]
public int SecondColumn { get; set; }

OR

You can use Fluent API as shown here in MSDN




回答2:


Let's say that you want to add the Unique constraint on only one attribute, you can do as following, starting from EF6.1

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

If you have multiple fields that are related to the same index then you are going to use:

Multiple-Column Indexes

Indexes that span multiple columns are specified by using the same name in multiple Index annotations for a given table. When you create multi-column indexes, you need to specify an order for the columns in the index. For example, the following code creates a multi-column index on Rating and BlogId called IX_BlogAndRating. BlogId is the first column in the index and Rating is the second.

public class Post 
{ 
    public int Id { get; set; } 
    public string Title { get; set; } 
    public string Content { get; set; } 
    [Index("IX_BlogIdAndRating", 2)] 
    public int Rating { get; set; } 
    [Index("IX_BlogIdAndRating", 1)] 
    public int BlogId { get; set; } 
}

Please refer to this link for further information.



来源:https://stackoverflow.com/questions/26837800/is-it-possible-to-set-a-unique-constraint-using-entity-framework-code-first

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!