1

Мне нужно изменить отношение «Множество ко многим» в моем проекте из списка в SortedList. Я использую Entity Framework 6 с кодом First и Automatic Migration.СортировкаList объекта в Entity Framework Код Сначала

У нас есть новое требование, которое должно иметь упорядоченный список. Я думал, что это будет довольно просто, но похоже, что миграция не учитывает мою модификацию.

Так что я должен выбрать альтернативный вариант. Пока у меня есть идеи, но я не уверен, что это лучший способ.

Я мог бы добавить уместность в AnEntity:

public int order {get; set;} 

Но я не нравится эта идея, потому что я могу AnEntity в нескольких списке.

Я мог бы также сделать новый Objet и изменить List<AnEntity> к List<AnEntityWithOrder>

public abstract class AnEntityWithOrder 
{ 
    public int order {get; set;} 
    public AnEntity AnEntity {get; set;} 
} 

мне интересно, если их может быть проблемы с производительностью.

Наконец-то мне стало интересно, удалось ли EF создать таблицу ManyToMany с дополнительным столбцом для этого порядка. Похоже, это невозможно. Знаете ли вы другие способы для меня «имитировать» этот SortedList ???

+1

Почему вы меняете организации, чтобы сделать заказ? Я немного запутался. – DavidG

+0

Заказ должен быть сохранен в базе данных. Пользователь приложения должен выбрать желаемый заказ. – AMS

+1

Итак, вы хотите, чтобы пользователи указывали порядок элементов, что-то вроде таблицы в лиге? – DavidG

ответ

3

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

перед тем

class B { 
} 

class A { 
    ICollection<B> Bs {get; set;} 
} 

modelBuilder.Entity<B>().HasMany(x => x.Bs).WithMany(); 

После

class B { 
} 

class C { 
    int Order {get; set;} 
    B B {get; set;} 
    A A {get; set;} 
} 

class A { 
    ICollection<C> Cs {get; set;} 
} 

modelBuilder.Entity<C>().HasRequired(x => x.B); 
modelBuilder.Entity<C>().HasRequired(x => x.A).WithMany(y => y.Cs); 

Теперь вы можете сортировать Cs по Order

+0

, потому что это прекрасно. – AMS

Смежные вопросы