Я изо всех сил пытаюсь отобразить несколько столбцов в одну таблицу, используя Dapper / FastCrud.
У меня есть эта структура (пытался исключить все, что я не считаю уместным)
public class Process
{
public int Id {get; set;}
public bool IsTemplate { get; set; }
[ForeignKey("CreatedByUser")]
public int CreatedByUserId {get; set;}
[ForeignKey("UpdatedByUser")]
public int? UpdatedByUserId { get;set; }
public User CreatedByUser { get; set; }
public User UpdatedByUser {get;set; }
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Process> CreatedProcesses { get; set; }
public virtual ICollection<Process> UpdatedProcesses { get; set; }
public User
{
CreatedProcesses = new HashSet<Process>();
UpdatedProcesses = new HashSet<Process>();
}
}
Когда я пытаюсь получить Процесс этим
var processes = connection.Find(statement => statement
.Where($"{nameof(Process.IsTemplate):C} = 1")
);
Я получаю эту ошибку:
InvalidOperationException: Multiple entity referencing properties were registered for the 'Models.Process' - 'Models.User' relationship
Dapper.FastCrud.Mappings.EntityMapping.<ConstructChildParentEntityRelationships>b__37_3(IGrouping<Type, PropertyMapping> groupedRelMappings)
Эта ссылка показывает, что Dapper может сделать это, но я не знаю, как заставить FastCrud обрабатывать это
Dapper multi, отображающий два свойства одного типа
Эта тема в fastcrud также решает проблему
https://github.com/MoonStorm/Dapper.FastCRUD/issues/65
Я пытался поместить [NotMapped] на ICollection в User, но безуспешно, все та же ошибка.