Как использовать OData в таблице со связью «многие ко многим» и без первичного ключаC#

Место общения программистов C#
Ответить
Anonymous
 Как использовать OData в таблице со связью «многие ко многим» и без первичного ключа

Сообщение Anonymous »

У меня есть таблица со связью «многие ко многим»:

Код: Выделить всё

public class ServiceEquipment
{
[ForeignKey("Service")]
public long ServiceRef { get; set; }
public Service Service { get; set; }
[ForeignKey("Equipment")]
public long EquipmentRef { get; set; }
public Equipment Equipment { get; set; }
}
Я использую следующую модель EDM для OData:

Код: Выделить всё

static IEdmModel GetEdmModel()
{
ODataConventionModelBuilder builder = new();
.
.
.
builder.EntitySet("ServiceEquipments");
return builder.GetEdmModel();
}
Вот мой контроллер для OData:

Код: Выделить всё

public class ServiceEquipmentsController : ODataController
{
private readonly SqlServerContext _sqlServerContext;

public ServiceEquipmentsController(SqlServerContext sqlServerContext)
{
_sqlServerContext = sqlServerContext;
}

[HttpGet]
[EnableQuery]
public IQueryable Get()
{
IQueryable srEqList = _sqlServerContext.ServiceEquipment.AsQueryable();

return srEqList;
}
}
Когда я запускаю код, в строке builder.EntitySet("ServiceEquipments"); EDM возникает ошибка и появляется сообщение:
System.InvalidOperationException: 'Набор сущностей 'ServiceEquipments'
основан на типе 'ArtaNG_API.Models.ServiceEquipment', который не имеет ключи
определены.'

Есть ли способ использовать OData в этой таблице?

Подробнее здесь: https://stackoverflow.com/questions/757 ... -a-primary
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»