子实体的实体框架唯一属性

本文关键字:实体 属性 唯一 框架 | 更新日期: 2023-09-27 18:07:59

我使用的模型类似于流行的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。每个博客的标题是唯一的。现在,我有

protected override DbEntityValidationResult ValidateEntity

这里我需要实现逻辑来检查重复,这是不明显的,因为我需要检查Posts。本地和数据库中的帖子,逻辑也取决于entityEntry.Status。这是实现这个限制的唯一可能的方法吗?或者可能存在一些更优雅的解决方案?

子实体的实体框架唯一属性

如何为它们添加唯一索引:

[Index("IdAndTitle", 1, IsUnique = true)]
public string Title { get; set; }
[Index("IdAndTitle", 2]
public int BlogId { get; set; }