. Net Core 3
По это и это примеры Я пытаюсь создать проверку модели предметной области с объектами значений. Но я получаю ошибку.
// Value object TitleValue
public class TitleValue : ValueObject
{
public string Value { get; }
public TitleValue()
{
}
public TitleValue(string value)
{
Value = value;
Create(value);
}
public static Result<TitleValue> Create(string input)
{
if (string.IsNullOrWhiteSpace(input))
return Result.Fail<TitleValue>(Errors.General.ValueIsRequired().Serialize());
string title = input.Trim();
if (title.Length > 2)
return Result.Fail<TitleValue>(Errors.General.ValueIsTooLong().Serialize());
return Result.Ok(new TitleValue(title));
}
protected override IEnumerable<object> GetEqualityComponents()
{
yield return Value;
}
}
// Domain model
public class Navigation
{
[Key]
public int Id { get; set; }
public TitleValue Title { get; set; } // there is problem
public string Slug { get; set; }
public byte IsCategory { get; set; }
public int Sort { get; set; }
public int Parent { get; set; }
public string Path { get; set; }
public ICollection<EdRoleNavigation> RoleNavigations { get; set; }
}
Я получаю ошибку:
Произошло необработанное исключение при обработке запроса. InvalidOperationException: тип сущности 'TitleValue' требует определения первичного ключа. Если вы намеревались использовать тип объекта без ключа, вызовите HasNoKey (). Microsoft.EntityFrameworkCore.Infrastructure.ModelValidator.ValidateNonNullPrimaryKeys (модель IModel, регистратор IDiagnosticsLogger)
. Net ядро считает, что TitleValue является сущностью.
Как я могу исправить эту ошибку и получить хорошую проверку?