Entity Framework WithRequired беглый API-интерфейс для отображения аннотаций данных - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь использовать подход к аннотации данных в моем проекте инфраструктуры кода для первой сущности.

Вот мои сущности: (показаны ограниченные поля)

public partial class CUSTOMEREXT
{
    [StringLength(36)]
    public string ID { get; set; }

    public virtual CUSTOMER CUSTOMER { get; set; }
}

public partial class CUSTOMER
{
    [StringLength(36)]
    public string ID { get; set; }

    public virtual CUSTOMEREXT CUSTOMEREXT { get; set; }
}

Свободный API: (Это работает)

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<CUSTOMER>()
        .Property(e => e.ID)
        .IsFixedLength()
        .IsUnicode(false);

    modelBuilder.Entity<CUSTOMER>()
        .HasOptional(e => e.CUSTOMEREXT)
        .WithRequired(e => e.CUSTOMER);

    modelBuilder.Entity<CUSTOMEREXT>()
        .Property(e => e.ID)
        .IsFixedLength()
        .IsUnicode(false);      
}

Динамически генерировать построитель модели: (Это не работает)

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Configurations.AddFromAssembly(Assembly.GetAssembly(GetType())); //Current Assembly
    base.OnModelCreating(modelBuilder);
}

Код для проверки:

Model1 model = new Model1();
var outp = model.Set<CUSTOMEREXT>().ToList();
var out1p = model.Set<CUSTOMER>().ToList();

Ошибка:

Невозможно определить основной конец ассоциации между типами 'OraclePOC.CUSTOMER' и 'OraclePOC.CUSTOMEREXT'.Основной конец этой ассоциации должен быть явно сконфигурирован с использованием API-интерфейса, обеспечивающего свободное взаимодействие или аннотации данных.

Глядя на this , я знаю, что должен преобразовать WithRequired ватрибут аннотации данных.Не уверен, как?

Есть идеи?

1 Ответ

0 голосов
/ 17 октября 2018

Мне удалось выяснить это:

Добавить [Required] атрибут:

public partial class CUSTOMEREXT
{
    [StringLength(36)]
    public string ID { get; set; }

    [Required]
    public virtual CUSTOMER CUSTOMER { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...