Поддерживает ли EF Core ComplexType в свойстве Owned?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Поддерживает ли EF Core ComplexType в свойстве Owned?

Сообщение Anonymous »

Я использую ComplexTypeAttribute для некоторых столбцов данных, которые хочу сгруппировать, например:

Код: Выделить всё

[ComplexType]
public record TrashData(DateTime? Value)
{
public Identity By { get; init; } = Identity.Unknown;

private string _reason = string.Empty;
public string? Reason
{
get => _reason;
init => _reason = string.IsNullOrWhiteSpace(value) ? string.Empty : value;
}

private static readonly TrashData _available = new TrashData((DateTime?)null);
public static TrashData Available => _available;
}
[ComplexType]
public record Identity(string IdKind = "GUID", string? Value = null)
{
public static readonly Identity Unknown = new("_","_");
}
Я не обнаружил проблем с добавлением ComplexType внутрь другого.
Но когда я добавил ComplexType внутри Owned< /code>, например:

Код: Выделить всё

//(I'm using Asp Identity)
public class User : IdentityUser
{
public required UserMetaData MetaData { get; set; } = new(default);
}
[Owned]
public record UserMetaData(string Id)
{
public TrashData Trashed_ { get; set; } = TrashData.Available;
}
У меня возникли проблемы со сборкой после создания миграции:
Изображение

Я пытался вручную указать, что это сложное свойство, используя такой метод Fluent, но, похоже, это не помогло существовать вот:

Код: Выделить всё

builder.Entity(e =>
{
//  e.ComplexProperty(x => x.MetaData.Trashed_); // Can call ComplexProperty

e.OwnsOne(
x => x.MetaData,
o =>
{
o.WithOwner().HasPrincipalKey(x => x.Id).HasForeignKey(x => x.Id);
// o.ComplexProperty(x => x.Trashed_); // Can't call complex property here.
}
);
}
Так EF Core 8 поддерживает сложный тип внутри собственного свойства или еще нет?

Код: Выделить всё

Note: Migration is generated against SQLite.


Подробнее здесь: https://stackoverflow.com/questions/791 ... d-property
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»