Самостоятельная ссылка на многие для многих отношений EF-код первым -- entity-framework поле с участием ef-code-first поле с участием code-first поле с участием breeze поле с участием durandal пол Связанный проблема

Self-referencing many-to-many relationship EF code first


4
vote

проблема

русский

Я работаю с ASP.NET MVC с шаблонами Durandal / Breeze.

Допустим, у меня есть следующий класс:

 <код> public class Person {     public int Id { get; set; }     public string Firstname { get; set; }         public string Lastname { get; set; }     public virtual List<Person> Friends { get; set; } }   

со следующим EF Flyent API:

 <код> modelBuilder.Entity<Person>()             .HasMany(m => m.Friends)             .WithMany()             .Map(m => m.ToTable("Friends"));   

База данных генерируется успешно.

<Сильная> проблема - это когда я выполняю que


ry с breeze (сторона клиента) у меня нет данных для <код> Friends свойства.

 <код>     var query = entityQuery.from('Person')         .where('id', '==', 123)         .expand("Friends");   

Когда запрос выполняется, я получаю в результате запрашиваемых людей, которым сущность людей со всеми данными, кроме имущества друзей, всегда является пустым массивом. Когда я проверяю ответ JSON, я вижу, что также передаются данные. Даже данные для имущества друзей. Однако они не связаны с самой недвижимостью друзей.

Мой вопрос: Что мне нужно сделать, чтобы мои друзья были заполнены ценностями?

спасибо.

Английский оригинал

I work with ASP.NET MVC With Durandal/Breeze templates.

Let's say I have the following class:

public class Person {     public int Id { get; set; }     public string Firstname { get; set; }         public string Lastname { get; set; }     public virtual List<Person> Friends { get; set; } } 

With the following EF Fluent API:

modelBuilder.Entity<Person>()             .HasMany(m => m.Friends)             .WithMany()             .Map(m => m.ToTable("Friends")); 

The database is generated successfully.

The problem is when I perform a que


ry with Breeze (client side) I have no data for the Friends property.

    var query = entityQuery.from('Person')         .where('id', '==', 123)         .expand("Friends"); 

When the query is executed I get as result the requested People entity with all the data except the Friends property is always an empty array. When I check the Json answer I see that also the data are transmitted. Even data for the Friends property. However they are not linked to the Friends property itself.

My question: what do I have to do to have my Friends property filled with values?

Thanks.

</div
              

Список ответов

1
 
vote
vote
Лучший ответ
 

Вы должны объявить внешний ключ лично. Breeze требует, чтобы FK правильно разрешить ассоциации.

Редактировать:

Я только что понял, что вы спрашиваете о отношениях многих ко многим. (Да, я должен был прочитать название поста ...) Бриз не поддерживает многозначные ассоциации. Тем не менее, у вас могут быть два отношения к однозначным отношениям, чтобы работать как многие для многих. (То есть много-к-одному-ко-многим) В этом случае, вам нужно будет определить, связывающую таблицу / сущность и внешний ключ, как уже упоминалось ранее. (см. http://www.breeeeezejs.com/documentation/navigate-properties ) < / P >.

 

You must declare a foreign key in Person. Breeze requires the FK to correctly resolve associations.

Edit:

I just realized you are asking about a many-to-many relationship. (yeah, I should have read the post title...) Breeze does not support many-to-many associations. However, you could have two one-to-many relationships to work as a many-to-many. (i.e. many-to-one-to-many) In this case, you will need to define the linking table/entity and the foreign key as mentioned earlier. (see http://www.breezejs.com/documentation/navigation-properties)

</div
 
 
1
 
vote

Попробуйте этот ответ: * Обратите внимание, что это неполно, потому что я не вижу другой таблицы, которую вы пытаетесь M-2-M с людьми. (Вы только хотите использовать стол для людей и 2-й стол, а не таблица = друзья.

 <код>  db.Person           .Include(c => c.Friends)           .Where(c => c.Friends.Any(up => up.FriendVlaue == c.FirstName)) //c.from Persons           .Select(c => new           {               PersonID = c.ID,               PersonName = c.FirstName,               PersonCount = c.Person.Count()           })           {   

Из этого ответа

 

Try this answer: *Note that this is incomplete because i do not see the other table that you are trying to m-2-m with Persons. ( You will only want to use Persons Table and the 2nd Table , NOT table=Friends.

 db.Person           .Include(c => c.Friends)           .Where(c => c.Friends.Any(up => up.FriendVlaue == c.FirstName)) //c.from Persons           .Select(c => new           {               PersonID = c.ID,               PersonName = c.FirstName,               PersonCount = c.Person.Count()           })           { 

From This answer

</div
 
 
 
 
0
 
vote

Вы должны включать друзей в результате. Вы можете сделать это, добавив <код> Include("Friends") на стороне Server API.

 <код> [HttpGet] public IQueryable<Person> Persons() {    return _contextProvider.Persons.Include("Friends"); }   

Если вы не хотите вернуться всегда Friends ссылки, вы можете создать другой метод в API, таких как <код> PersonsWithFriends , как указано в здесь (Специализированные действия запросов).

 

You should include Friends in the results. You can do this by adding Include("Friends")at Server Side API.

[HttpGet] public IQueryable<Person> Persons() {    return _contextProvider.Persons.Include("Friends"); } 

If you don't want to return always the Friendsreference, you can create another method in the API such as PersonsWithFriends as suggested in here (Specialized query actions).

</div
 
 
         
         

Связанный проблема

2  Сценарий Prebuild в визуальных студиях для изменения структуры базы данных базы данных объекта не работает  ( Prebuild script in visual studios to change entity framework database schema isn ) 
Моя цель - использовать скрипт предварительного использования для изменения схемы в зависимости от конфигурации компилятора (отладки / релиз / другие ..). Я...

7  ModelState не проверяет вложенные модели после редактирования в контроллере  ( Modelstate not validating nested models after editing in controller ) 
Я вложил просмотра модерников, как эти два: <код> public class FirstViewModel { public SecondViewModel SecondViewModel { get; set; } } public class Sec...

0  В EF я ищу дубликатов и выполняю запрос на самоссылки, как я могу написать этот запрос?  ( In ef im looking for duplicates and doing a self referencing query how do i wr ) 
Вот оператор SQL: <код> SELECT f1.* FROM [File] f1 where 1 < (select count(*) from [File] f2 where f1.FileName = f2.FileName) order by f1.FileName Это д...

2  Entity Framework 6 Откуда и атрибуты ключ и столбцов  ( Entity framework 6 where did key and column attributes go ) 
Я обновляю из структуры сущности 4.1.0.0 до структуры сущности 6, и у меня действительно тяжелое отслеживание времени, где все старые занятия пошли и какие ве...

0  EF6 DBContext - Избегайте повторной вставке дочерних записей CORT (S)  ( Ef6 dbcontext avoid re inserting roots child records ) 
Есть сущность узла. Узел может иметь много псевдонимов (которые имеют идентификатор и свойства псевдонима (строки)). Псевдонимы должны быть уникальными на осн...

6  Как запустить миграции EF при развертывании на сайт Azure через Visual Studio Online  ( How to run ef migrations when deploying to azure website via visual studio onlin ) 
У меня есть веб-сайт Azure, настроенный для развертывания из Visual Studio Online (размещенные TFS). Я сначала оцениваю Moving из базы данных в Code , снача...

5  Сделать структуру сущности быть нечувствительными к регистру  ( Make entity framework be case insensitive ) 
Возможно ли установить корпус строки структуры объекта нечувствителен по умолчанию? Если я использую <код> string.StartsWith("stringToCompare", StringComp...

0  Как модифицировать операции CRUD с структурой объекта в приложении .NET MVC  ( How to modify crud operations with entity framework in net mvc application ) 
Мне нужно отработать, как сделать трудные вещи в приложении MVC, переданные мне бывшим коллегой (у меня нет никакой другой информации, просто приложение и баз...

2  Высевание многих для многих кода EF первые отношения  ( Seeding many to many ef code first relationship ) 
Есть несколько других сообщений по этой теме, которую я видел, но я не смог получить правильный ответ еще (моя собственная вина, я уверен), но я хочу сеять ба...

0  Основная структура 4 Первичный ключ в качестве GUID и автогенерации  ( Entity framework 4 primary key as guid and autogeneration ) 
Я пытаюсь использовать EF4 и предположительно новую функцию создания GUIDETS сгенерированной Server Side. У меня есть таблица с главным ключом GUID, и его зна...

3  Сущность Framework 6.1.1 и большая модель  ( Entity framework 6 1 1 and large model issue ) 
У меня есть огромная база данных, с которыми в нем есть около 1100 таблиц, я пытаюсь использовать структуру сущности и разделите таблицы на несколько разных д...

0  WCF + EF возвратный объект с fk  ( Wcf ef return object with fk ) 
Я сталкиваюсь с этим вопросом: у меня есть класс Productorder, который имеет ProductID как внешний ключ к классу продукта. Когда я включаю следующий метод: ...

0  Отправка определения интерфейса на провод (WCF Service)  ( Sending an interface definition over the wire wcf service ) 
У меня есть служба WCF, которая генерирует объекты объектов нагрузки объектов (а также некоторые другие структуры и простые классы, используемые для освещения...

0  Ошибка структуры объекта: ошибка загрузки указанного ресурса метаданных  ( Entity framework error error loading specified metadata resource ) 
Я знаю, что это известная проблема, но решение для моего случая не в других вопросах, я думаю. У меня есть проект в C #. В этом проекте у меня есть мой EDMX...

0  Архитектура лука - методы области домена, которые требуют информации от инфраструктуры  ( Onion architecture domain model methods that require information from infrastr ) 
Я просто начинаю с DDD и внедряя архитектуру лука. Я делаю систему приглашения, где Super пользователь может пригласить другого пользователя по электронной ...

Связанный проблема

2  Сценарий Prebuild в визуальных студиях для изменения структуры базы данных базы данных объекта не работает 
7  ModelState не проверяет вложенные модели после редактирования в контроллере 
0  В EF я ищу дубликатов и выполняю запрос на самоссылки, как я могу написать этот запрос? 
2  Entity Framework 6 Откуда и атрибуты ключ и столбцов 
0  EF6 DBContext - Избегайте повторной вставке дочерних записей CORT (S) 
6  Как запустить миграции EF при развертывании на сайт Azure через Visual Studio Online 
5  Сделать структуру сущности быть нечувствительными к регистру 
0  Как модифицировать операции CRUD с структурой объекта в приложении .NET MVC 
2  Высевание многих для многих кода EF первые отношения 
0  Основная структура 4 Первичный ключ в качестве GUID и автогенерации 
3  Сущность Framework 6.1.1 и большая модель 
0  WCF + EF возвратный объект с fk 
0  Отправка определения интерфейса на провод (WCF Service) 
0  Ошибка структуры объекта: ошибка загрузки указанного ресурса метаданных 
0  Архитектура лука - методы области домена, которые требуют информации от инфраструктуры 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.