Ответ 1
Я нашел ответ, просмотрев фактические модульные тесты, включенные в проект. Он основан на использовании именованных параметров атрибута index. Например:
[Indexed(Name = "ListingID", Order = 2, Unique = true)]
public string ListingNumber { get; set; }
[Indexed(Name = "ListingID", Order = 1, Unique = true)]
public string ChannelCode { get; set; }
создаст индекс с именем ListID по двум полям, которые должны быть уникальными. Это вам не нужен уникальный атрибут, удалите его как параметр. Вы должны использовать именованные параметры, чтобы заставить его работать. Также все поля в индексе должны иметь одно и то же уникальное значение.