• 1000 1004 *
https: // {server}: {port} / v1 / Entities? $ Expand = ownBy & $ orderby = ownBy / userName
, и я получаю следующее сообщение об ошибке:
System.InvalidOperationException: The LINQ expression 'DbSet<Entity>
.LeftJoin(
outer: DbSet<User>,
inner: p => EF.Property<Nullable<Guid>>(p, "OwnById"),
outerKeySelector: u => EF.Property<Nullable<Guid>>(u, "UserId"),
innerKeySelector: (o, i) => new TransparentIdentifier<Portfolio, User>(
Outer = o,
Inner = i
))
.OrderBy(p => EF.Property<Nullable<Guid>>(p.Inner, "UserId") == null ? null : new UserModel{
UserEmail = p.Inner.UserEmail,
UserFirstName = p.Inner.UserFirstName,
UserId = p.Inner.UserId,
UserLastName = p.Inner.UserLastName,
Username = p.Inner.Username
}
.Username)' could not be translated.
Кажется, это довольно простой пример, и я не понимаю, почему его так сложно перевести.
Вот мой контроллер, использующий автомаппер:
[ODataRoute]
[Produces("application/json")]
[ProducesResponseType(typeof(ODataValue<IEnumerable<EntityModel>>), Status200OK)]
[ProducesResponseType(Status404NotFound)]
[EnableQuery(AllowedQueryOptions = All, MaxTop = 100)]
public IQueryable<EntityModel> Get()
{
var results = _Query.Get();
return results.ProjectTo<EntityModel>(_Mapper.ConfigurationProvider);
}
Конфигурация Automapper:
CreateMap<Entity, EntityModel>();
Метаданные:
<EntityType Name="EntityModel">
<Key>
<PropertyRef Name="entityId" />
</Key>
...
<Property Name="ownById" Type="Edm.Guid" />
...
<NavigationProperty Name="ownBy" Type="AMI.UserModel" />
</EntityType>
<EntityType Name="UserModel">
<Key>
<PropertyRef Name="userId" />
</Key>
<Property Name="userId" Type="Edm.Guid" Nullable="false" />
<Property Name="username" Type="Edm.String" />
<Property Name="userFirstName" Type="Edm.String" />
<Property Name="userLastName" Type="Edm.String" />
<Property Name="userEmail" Type="Edm.String" />
</EntityType>
Любая помощь будет очень признательна.