Я пытаюсь поиграть с библиотекой Bogus, чтобы сгенерировать случайные начальные данные в приложении .Net Core 2.1, используя EF Core для управления данными.
У меня есть объект под названием Company, которому принадлежит Address;это отношение один к одному.
Модель компании:
public class Company
{
public long Id { get; set; }
[Required]
public Address Address { get; set; }
public string Phone { get; set; }
public string Email { get; set; }
public string Website { get; set; }
}
Модель адреса:
public class Address : IValidatableObject
{
public long Id { get; set; }
public string Street1 { get; set; }
public string Street2 { get; set; }
public string ZipCode { get; set; }
public string City { get; set; }
public string Country { get; set; }
}
Код заполнения, доступный в моем DbContext:
var TestAddresses = new Faker<Address>()
.RuleFor(o => o.Id, f => aId++)
.RuleFor(o => o.Street1, f => f.Address.StreetAddress(true))
.RuleFor(o => o.Country, f => f.Address.Country())
.RuleFor(o => o.City, f => f.Address.City());
var c = new Faker<Company>()
.RuleFor(o => o.Id, f => f.IndexFaker+1)
.RuleFor(o => o.RegisteredAddress, f => TestAddresses.Generate())
.RuleFor(o => o.Phone, f => f.Phone.ToString())
.RuleFor(o => o.Email, f => f.Internet.Email())
.FinishWith((f, u) =>
{
Console.WriteLine("Company created! Id = {0}", u.Id);
});
b.Entity<Company>().HasData(c.Generate(100).ToArray());
При выполнении кода я получаю следующее исключение: System.InvalidOperationException: «Начальный объект для типа объекта« Компания »не может быть добавлен, поскольку не было предоставлено значение для обязательного свойства RegisteredAddressId»''