Как настроить отношение внешнего ключа Dapper.FastCRUD
Возникли проблемы с JOIN с использованием Dapper.FastCRUD. Мне нужно отразить такой запрос в Dapper:
select * from Code C
left join Label L on C.CodeId = L.CodeId
left join Param P on C.CodeId = P.CodeId
Я не могу настроить класс модели с помощью атрибутов.
public class Code
{
[Key]
[ForeignKey(nameof(LabelData))]
[ForeignKey(nameof(PropData))]
public int CodeId { get; set; }
public Label LabelData { get; set; }
public Prop PropData { get; set; }
}
Это явно не нормально, потому что один и тот же атрибут не может быть установлен дважды.
Подход Fluent-API также не работает:
OrmConfiguration.GetDefaultEntityMapping<Code>()
.SetProperty(b => b.CodeID,
prop => prop.SetChildParentRelationship<Label>(nameof(Label)))
.SetProperty(b => b.CodeID,
prop => prop.SetChildParentRelationship<Prop>(nameof(Prop)));
connnection.Find<Code>(s => s.Include<Label>())
выдача ошибки при выполнении запроса:Could not find any relationships involving 'DataAccessLayer.Models.LabelData
Есть идеи? Вики проекта не охватывали этот сценарий: https://github.com/MoonStorm/Dapper.FastCRUD/wiki/JOINs