【发布时间】:2012-07-19 20:17:59
【问题描述】:
我想限制导航属性返回的模型。例如,我使用AuditInfo 模型来记录模型的活动。删除模型后,将设置 DeletedBy 和 Deleted 属性。但是,由于没有真正从数据库中“删除”任何内容,因此这些模型仍将填充到其他模型引用的导航属性中。
AuditInfo 类
public class AuditInfo
{
[Key]
public int AuditInfoID { get; set; }
//Other attributes
public string DeletedBy { get; set; }
public DateTime? Deleted { get; set; }
}
具有导航属性的类
public class BlogPost
{
//Other attributes
//Only return Comment where Comment.AuditInfo.Deleted is NULL
public virtual IList<Comment> Comments { get; set; }
}
正在审核的类
public class Comment
{
//Other attributes
public int AuditInfoID { get; set; }
}
我将如何设置约束以使 BlogPost.Comments 中只有未删除的 cmets(Comment.AuditInfo.Deleted 为 NULL)?
【问题讨论】:
-
如何填充 BlogPost.Comments?您不能通过检查 BlogPost.Comments.AuditInfo.Deleted = false 来填充 BlogPost.Comments 吗?
-
它是使用实体框架填充的。由于每个评论都有一个与 BlogPost 关联的外键,因此框架将自动检测一对多关系并填充导航属性。
标签: c# .net sql sql-server entity-framework