1
一些在我的应用程序中的实体对他们4个审计特性:您可以在实体框架中的自引用实体中自定义外键名称吗?
public virtual DateTime WhenAdded { get; set; }
public virtual DateTime? WhenUpdated { get; set; }
public virtual User AddedBy { get; set; }
public virtual User UpdatedBy { get; set; }
我使用一个代码第一种方法,并具有以下扩展方法来映射用户属性:
public static void MapAuditFields<T>(this EntityTypeConfiguration<T> configuration) where T : class, IAuditable
{
configuration.HasOptional<User>(e => e.AddedBy)
.WithOptionalDependent()
.Map(a => a.MapKey("AddedByUserId"));
configuration.HasOptional<User>(e => e.UpdatedBy)
.WithOptionalDependent()
.Map(a => a.MapKey("UpdatedByUserId"));
}
这在大多数情况下工作正常,但不在用户类,这当然有自己的递归关系。我已经看到了互联网上的各种帖子表明实体框架有一个错误,当您尝试自定义在这种情况下连接表的列名,例如:
Self-referencing many-to-many recursive relationship code first Entity Framework
和
我得到的错误是“序列包含多个匹配元素”。
有谁知道这是否已被固定在实体框架6?
非常感谢。
非常感谢您的答复,但不幸的是,这给出了同样的错误。 – gusgorman
它适用于我 – Moho
好吧,嗯,奇怪。你能分享一下你如何在你的其他实体上映射审计字段吗? – gusgorman