一些在我的应用程序中的实体都对他们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"));
}
这在大多数情况下工作正常,但不是在用户类,这当然有自身的递归关系。 我已经在网上看到这表明实体框架有一个错误,当您尝试自定义在这种情况下连接表的列名,例如在不同的岗位:
自引用许多一对多递归关系码第一实体框架
和
http://social.msdn.microsoft.com/Forums/en-US/f058097d-a0e7-4393-98ef-3b13ab5b165d/code-first-sequence-contains-more-than-one-matching-element-exception-when-发生-模式?论坛= adonetefx
我得到的错误是“序列包含不止一个匹配的元素”。
有谁知道这是否已被固定在实体框架6?
非常感谢。