MS EF4: Как расшифровать таблицу со ссылками на себя? - PullRequest
0 голосов
/ 20 июля 2010

У меня есть таблица Product с полями типа:

public class Product {
    public int ID {get;set;}
    ...
}

и таблица, объединяющая товары с другими товарами типа «перекрестная продажа» (например, предметы):

public class CrossSell {
    public int ProductID {get;set;}
    public int CrossSellID {get;set;}
}

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

Entity Framework 4 (второе издание EF) берет эти таблицы и создает отношение Product и Product1, где линия, соединяющая таблицу, называется CrossSell.

То, что я хочу иметь:

public class Product {
    public int ID {get;set;}
    ...
    public IList<Product> CrossSells {get;set;}
}

EF создал это:

public class Product {
    public int ID {get;set;}
    ...
    public IList<Product> Products {get;set;}
    public IList<Product> Products1 {get;set;}
}

Могу ли я просто удалить второй Список с именем Products1, переименовать первый в "CrossSells" и сделать все это просто волшебным образом? Стоит ли переделывать таблицы SQL по-другому, чтобы EF лучше понимал мои намерения? Как будут выглядеть эти таблицы SQL, если в одном продукте может быть несколько позиций перекрестных продаж?

EDIT:

Что я действительно ищу, так это способ представления элементов CrossSell в EF без циклической ссылки. Прямо сейчас, Продукт относится к другим продуктам, которые, в свою очередь, относятся к другим продуктам, которые в свою очередь ...

1 Ответ

2 голосов
/ 20 июля 2010

Найдите сущность в Обозревателе моделей.Найдите свойство Products1.Нажмите на это.Переименуйте его в редакторе свойств.

...