|
|
От: | Naf2000 | |
| Дата: | 22.05.23 07:12 | ||
| Оценка: | |||
class Ref<TEntity>
where TEntity : Entity
{
public long ID { get; init; }
public TEntity Data => default!;
}
abstract class Entity
{
[PrimaryKey, Identity]
public long ID { get; init; }
}
abstract class Catalog : Entity
{
[Column]
public string Name { get; init; } = default!;
}
[Table("Persons")]
class Person: Catalog
{
}
[Table("Storages")]
class Storage : Catalog
{
public Ref<Person> Manager { get; init; } = default!;
//public Person ManagerData { get; init; } = default!;
}'s.Manager.Data.Name' cannot be converted to SQL.
var builder = new FluentMappingBuilder(context.MappingSchema);
builder.Entity<Storage>().Property(s => s.Manager.ID).HasColumnName(nameof(Storage.Manager));
builder.Entity<Storage>().Association(s => s.Manager.Data, (s, p) => s.Manager.ID == p.ID);
builder.Build();
var query = context.GetTable<Storage>().Select(s => s.Manager.Data).Select(p => new { p.Name });