2015-03-25 3 views
0

Я надеялся, что кто-то может дать мне немного совета здесь. Мне интересно, если я нахожусь на пути или в стороне от моего подхода. Я использую Entity Framework, первый подход к базе данных. У меня есть таблица ссылок, которая связывает людей друг с другом. Человек 1, связанный с Person 2 как друг, например. (Association_type имеет ключевое значение, связанное с таблицей перекодировки)Проблема с таблицей ссылок Microsoft Entity Framework

enter image description here

Я заметил, что Entity Framework создает две отдельные навигационные свойства.

[EdmRelationshipNavigationPropertyAttribute("IntelDBModel", "FK_a_Person_Person_t_Person", "a_Person_Person")] 
    public EntityCollection<a_Person_Person> a_Person_Person 
[EdmRelationshipNavigationPropertyAttribute("IntelDBModel", "FK_a_Person_Person_t_Person1", "a_Person_Person")] 
    public EntityCollection<a_Person_Person> a_Person_Person1 

В других частях приложения я успешно использовал Entity Framework для записи данных в базу данных. Например, у меня есть телефон для связи.

enter image description here

В человеке на телефонные сценарий, я создаю t_Person (р) объект, а затем создать (т) объект t_Telephone и использовать p.t_Telephone.Add (т);

Это похоже на работу.

Я немного утерян с точки зрения того, как управлять этой персоной ссылкой в ​​таблицу ссылок.

При сохранении в базе данных я использую foreach для итерации объектов People.

foreach (t_Person p in People) 
{ctx.t_Person.AddObject(p); 
... 
} 

Я знаю, что связано с тем, что человек в этой коллекции предметов людей. Однако я не знаю, как использовать свойства навигации t_Person (a_Person_Person), чтобы сохранить значения person1 и person2 в таблице ссылок (a_Person_Person).

Любые советы были бы весьма признательны.

+0

Этот вопрос не имеет ничего общего с ASP.NET – Dai

+0

, поэтому я прекратил использовать структуру сущности для сложных решений и вернулся для T-SQL и хранимых процедур ,,,, – ymz

ответ

0

Я думаю, что данная ситуация, как правило, дает вам трудное время при использовании EF, поскольку вы связываете два внешних ключа с двумя таблицами с одним и тем же основным ключом, так как отношения или ленивая загрузка будут трудно обрабатывать, вы можете получить двойные записи или неправильные записи, я бы добавил другое свойство в таблицу t_person, такую ​​как datecreated, которая заставила EF обрабатывать таблицу t_person как не ассоциацию, а как фактическую сущность, дающую вам больше контроля над сущностью и вставкой и удалением.

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