0

Скажем, у нас есть 2 таблицыМогу ли я иметь свойства навигации на основе определенных полей (а не первичных ключей!), Уникальных или внешних ключей)?

public class Table1 
{ 
    [Key] 
    public int ID { get; set; } 

    public int ID2 { get; set; } 

    public int ID3 { get; set; } 
} 

public class Table2 
{ 
    [Key] 
    public int ID { get; set; } 

    public int ID2 { get; set; } 

    public int ID3 { get; set; } 
} 

Идентификатор столбца является первичным ключом в Table1 и в Table2, и вот оно!

Теперь, я хочу создать отношения (не в базе данных!); Я просто хочу солгать EntityFramework, что между этими двумя таблицами существует взаимосвязь.

Итак, я хочу ID2 от Table2 быть внешний ключ и ссылку не столбец ID из Table1, но колонка ID2.

Возможно ли это?

EDIT2

Я знаю, что можно что-то вроде

public class Table2 
{ 
    //... 

    public int ID2 { get; set; } 

    [ForeignKey("ID2")] 
    public Table1 Table1 { get; set; } 

    //... 
} 

и

public class Table1 
{ 

    //... 

    public virtual ICollection<Table2> Table2 { get; set; } 

    //... 
} 

Я успешно расширил все строки TABLE2 для определенной Table1 строки.

Присоединение к sql будет выглядеть так: Table1. ID = Table2.ID2; Мне нужно, чтобы это было как Table1. ID2 = Таблица2.ID2

+0

Это не имеет никакого смысла для меня. Зачем вам «лгать» ef и иметь такие фальшивые отношения? – mr100

+0

из-за модели, с которой я имею дело ... Существует таблица, где эти поддельные отношения предоставляются, и эта таблица часто изменяется. Поэтому при использовании консольного приложения я генерирую модель в любое время, когда эта таблица изменяется. Чтение edit2 – RazvanR

ответ

1

В итоге я создаю 2 представления для таблицы A и сопоставляю их с объектами EF. Первый вид имеет идентификатор в качестве первичного ключа, второй - ID2 в качестве первичного ключа. Очевидно, второе представление было использовано для расширения всех строк таблицы2.

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

  • Нет связанных вопросов^_^