Допустим, у меня есть реляционная база данных с таблицами: OrderableCategories и Orderables.Они находятся в отношении «один ко многим» с одной OrderableCategory, прикрепленной к нескольким заказам.Следовательно, экземпляр OrderableCategory в LINQ имеет членов: ID
, Name
и EntitySet<Orderable> Orderables
.При отправке через WCF (wsHttpBinding, если это так или иначе имеет значение), EntitySet переводится в простой Orderable[]
.Orderable
Экземпляр также содержит элемент с именем OrderableCategory
, который является просто экземпляром категории этого заказа.Я думаю, что при отправке через WCF происходит нечто подобное: экземпляр Orderable
заполняет свой экземпляр OrderableCategory
полями из этой категории, но его Orderable[]
также заполняется другими элементами из этой категории.Этим заказам снова заполняется OrderableCategory
этой категорией и т. Д., Так что я могу теоретически назвать (для полученного заказу o): o.OrderableCategory.Orderables[0].OrderableCategory.Orderables[0]. (...)
и т. Д.Я только предполагаю, что сервер попадает в бесконечный цикл, и когда размер сообщения превышает квоту, он отключается, и я вижу исключение, когда служба закрывается.Как я могу избежать этого сценария и иметь преимущества отношений в моей базе данных?Я думаю, что мои подозрения верны, потому что когда я отключил одно из свойств (сделало его внутренним в LINQ Class Designer), данные заполняются только «односторонне», и у Orderable
больше нет члена OrderableCategory
, оноработает.Но я хотел бы знать, может ли это быть достигнуто без ущерба для собственности.