Сложный тип данных в ядре EF 2 [дубликат]

Используйте метод .on() jQuery http://api.jquery.com/on/ для присоединения обработчиков событий к элементу live.

Также с версии 1.9 .live() удаляется.

13
задан DavidG 15 March 2017 в 18:30
поделиться

4 ответа

Поддержка сложных типов в настоящее время находится в отставании https://github.com/aspnet/EntityFramework/issues/246

14
ответ дан ErikEJ 19 August 2018 в 15:49
поделиться
  • 1
    Поддерживается ли это, или я делаю что-то неправильно? Вам нужно объявить объект сложным, используя fluentApi? – Gillardo 7 January 2016 в 17:49
  • 2
    Наконец, он поддерживается в EF Core 2.0: docs.microsoft.com/en-us/ef/core/what-is-new . Для его конфигурирования необходимо использовать некоторые из свободно распространяемых API, но аннотации не являются поддерживается. – Sergey Kandaurov 23 December 2017 в 11:23
  • 3
    @SergeyKandaurov Начиная с EF Core 2.1, теперь вы можете использовать атрибут [Owned] для обозначения принадлежащих им типов. – saluce 4 June 2018 в 21:22

Вы можете просто поставить [NotMapped] выше

public class Rate
{
    public int ID { get; set; }
    [NotMapped]
    public Money Price = new Money();
}

следующим образом.

-1
ответ дан Asif Khan 19 August 2018 в 15:49
поделиться
  • 1
    Это не будет помещено в db – Sergey Kandaurov 23 December 2017 в 11:20
  • 2
    @SergeyKandaurov yess, поскольку класс Money не имеет никакого значения первичного ключа, поэтому он не является сущностью .. и если если это не сущность, тогда он не будет отображаться в db .. но вы можете использовать его извне, но никакая ценность этого не будет хранится в db – Asif Khan 25 December 2017 в 07:42

В качестве обновления, основанного на одном из ваших комментариев выше, вы теперь используете синтаксис OwnsOne для этого, используя Fluent API в своей функции OnModelCreating DbContext.

[ComplexType]
public class Money
{
    public double? Amount { get; set; }
}

public class Rate
{
    [Key]
    public long Id { get; set; }

    public Money Price { get; set; }
}

public MyDbContext : DbContext
{
     protected override void OnModelCreating(ModelBuilder modelBuilder)
     {
         modelBuilder.Entity<Rate>(entity =>
         {
             entity.OwnsOne(e => e.Currency);
         });
     }
}

Я не действительно, если он использует ComplexTypeAttribute или нет. Но когда я сгенерировал миграцию через Add-Migration, он сгенерировался, как ожидалось, для старой документации ComplexType таким образом (то есть таблица с именем Rate имеет столбец Price_Amount).

3
ответ дан Reddog 19 August 2018 в 15:49
поделиться

Диего Вега объявил Собственные сущности и разбиение таблиц , который должен быть другим подходом и альтернативой сложным типам.

Can ' t поделиться своими личными впечатлениями, потому что я не проверил это лично, но Джули Лерман , , похоже, удовлетворена ...

2
ответ дан Shimmy 19 August 2018 в 15:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: