EF Core не может передать тип значения через конструктор агрегатов - PullRequest
0 голосов
/ 08 июня 2018

Проблема

У меня есть необходимость инициализировать новую сущность домена, которая принимает объект базового значения через его конструктор.Механизм сохранения за доменом - это SQL-сервер, управляемый Entity Framework Core.

Проблема, с которой я столкнулся, заключается в том, что когда EF Core пытается создать схему базы данных, он не может связать параметр объекта значения с каким-либо сопоставленным свойством.

Что мне здесь не хватает?Любая помощь будет высоко ценится.

Моя упрощенная модель домена

public sealed class Address
{
    public string StreetAddress { get; }

    public string Town { get; }

    public string PostalCode { get; }

    internal Address(string streetAddress, string town, string postalCode)
    {
        ...
    }
}

public sealed class PropertyListing
{
    public Guid Id { get; }

    public string Title { get; }

    public string Description { get; }

    public Address Address { get; }

    public decimal GuidePrice { get; }

    internal PropertyListing(Guid id, string title, string description, Address address, decimal guidePrice)
    {
        ...
    }
}

Моя конфигурация модели базы данных

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<PropertyListing>(builder =>
        {
            builder.HasKey(model => model.Id);

            builder.Property(model => model.Title).IsRequired();

            builder.Property(model => model.Description).IsRequired();

            builder.Property(model => model.GuidePrice).IsRequired();

            builder.OwnsOne(model => model.Address, address =>
            {
                address.Property(model => model.StreetAddress).IsRequired();

                address.Property(model => model.Town).IsRequired();

                address.Property(model => model.PostalCode).IsRequired();
            });
        });
    }

Результаты

Когда это произойдетПри создании схемы базы данных Entity Framework выдает следующее исключение:

System.InvalidOperationException : 'Не найден подходящий конструктор для типа сущности' PropertyListing ',Следующие параметры не могут быть связаны со свойствами объекта: ' address '. '

Мой технологический стек

  • Entity FrameworkCore 2.1.0-preview1-final
  • ASP.NET Core 2.0

Справочные материалы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...