我使用的模型类似于流行的Blog / Post EntityFramework示例:
public class Blog
{
public int BlogId { get; set; }
public string Name { get; set; }
public virtual List<Post> Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public virtual Blog Blog { get; set; }
}
我需要让Post.Title在每个博客中都是唯一的。 现在,我有
protected override DbEntityValidationResult ValidateEntity
这里我需要实现逻辑来检查重复,这是不明显的,因为我需要检查DB中的Posts.Local和Posts,逻辑依赖于entityEntry.Status。这是实现此限制的唯一可行方法,还是存在一些更优雅的解决方案?
答案 0 :(得分:0)
如何在它们上添加唯一索引:
[Index("IdAndTitle", 1, IsUnique = true)]
public string Title { get; set; }
[Index("IdAndTitle", 2]
public int BlogId { get; set; }