WP7 — Локальная база данных — множество Linq2SQL

#c# #linq-to-sql #windows-phone-7

#c# #linq-to-sql #windows-phone-7

Вопрос:

Как следует из названия, я ищу решение этой проблемы с атрибутом ассоциации, который также является свойством для установщика EntitySet<>, поскольку он отличается для отношений «Многие ко многим», я не уверен, что я иду в правильном направлении, поскольку примеров указанных отношений нет, из-за того, что L2S оченьсложно с этим типом отношений.

Должна ли таблица внешнего ключа иметь ссылки или наборы на 2 таблицы, к которым она присоединяется …?

Пример:

  • Отели — Таблица
  • Запланированные рейсы — таблица
  • HotelToScheduledFlights — таблица — состоит из HotelId и ScheduledFlightId оба являются FKS

Должен ли я использовать многие ко многим в этом случае? или мне лучше провести рефакторинг до «один ко многим»?

Ответ №1:

Если отношения внешнего ключа существуют в SQL, L2S будет иметь как свойства (например, HotelId, ScheduledFlightId), так и ссылки EntityRefs в объекте таблицы HotelToScheduledFlights. Затем отели будут иметь EntitySet, указывающий на HotelToScheduledFlights, как и запланированные рейсы.

Я думаю, что это действительное отношение «многие ко многим», если вы планируете искать отели по рейсам и рейсам по отелям.

Чтобы привязать все рейсы к отелю, вы бы сделали:

 Hotel h = dc.Hotels.First(); // Pick a hotel
List<ScheduledFlight> l = h.HotelToScheduledFlight.Select(i => i.ScheduledFlight).ToList();
  

Комментарии:

1. хммм, мне придется взглянуть на это немного сложнее. ручное кодирование — это боль в заднице, жаль, что у них не было инструментов для моделирования этого для Windows Phone.