Я получаю следующее исключение при выполнении кода
Объект типа
«System.Collections.Generic.HashSet`1 [[SolutionName.ProjectName.Contract,
SolutionName.ProjectName, версия = 1.0.0.0, культура = нейтральная,
PublicKeyToken = null]] 'нельзя установить или удалить из значения
свойство EntityReference типа
'SolutionName.ProjectName.Contract'.
У меня есть две таблицы Таблица контрактов и Таблица клиентов
public partial class Contract
{
public int ContractId { get; set; }
public System.Guid Guid { get; set; }
//nav props
public virtual Client Client { get; set; }
}
public partial class Client
{
public int Id { get; set; }
public System.Guid Guid { get; set; }
public String ClientName { get; set; }
public Nullable<int> Contract1Id { get; set; } //foreign key pointing to ContractId
public Nullable<int> Contract2Id { get; set; } //foreign key pointing to ContractId
//nav props
public virtual ICollection<Contract> Contracts { get; set; }
public virtual Contract Contract1 { get; set; }
public virtual Contract Contract2 { get; set; }
}
Таким образом, у нас есть 3 навигационных свойства для контракта из клиентской таблицы. Контракт1 и контракт2 из клиентской таблицы будут содержать по одной строке.
Но я собираюсь отобразить несколько контрактов в коллекции контрактов. Я попробовал этот, используя следующий свободный код API:
modelBuilder.Entity<Client>()
.HasOptional(c => c.Contracts)
.WithMany()
.HasForeignKey(b => b.Contract1Id);
modelBuilder.Entity<Client>()
.HasRequired(c => c.Contracts)
.WithMany()
.HasForeignKey(b => b.Contract2Id);
Я не могу правильно настроить свободный API для моего сценария. Пожалуйста, дайте несколько советов