2009-07-16 3 views
2

Я слышал эту фразу, когда утром слушал чистые скалы. По-видимому, linq to sql поддерживает только одно-одно табличное сопоставление.Что означает одно к одному отображению таблицы?

+0

респондентам: так вы говорите, если у вас есть две связанные таблицы, и их взаимосвязь одна к одному (vs от одного до многих), то у вас есть «одно к одному сопоставление таблицы»? – MedicineMan

+0

@MedicineMan, я думаю, что вы и респонденты здесь немного неправильно поняли цитату. Пожалуйста, обратите внимание на мой ответ как на возможную альтернативу. Могли бы вы также указать эпизод и, если возможно, время, когда произошла цитата? Спасибо –

ответ

1

Это означает, что для каждой записи в одной таблице есть одна связанная запись в другой таблице. Но Linq to SQL поддерживает все виды отношений данных, отличных от одного к одному. Посмотрите, например, на Join examples here.

0

Один к одному отношений означает, что для каждой записи в одной таблице есть одна и только одна запись в связанной таблице ...

Но LinqToSql поддерживает отображение 12:59 и один к многие отношения ... многие ко многим может быть достигнуто, но это требует некоторого кодирования ...

+1

Правильнее ли говорить, что может быть одна и только одна запись в связанной таблице? –

4

One-однозначное отображение означает, что один из родителей строка может иметь только один дочерний ряд. Существуют различные виды отображения, когда вы считаете дизайн

One-To-Many: Автомобиль имеет много частей
Много-To-One: Многие автомобили используют ту же часть
Много-To-Many: многие части используется во многих автомобилях
One-To-One: Одна часть используется только один раз в одном автомобиле

2

Я знаю, что Linq к Sql действительно позволяет не только 12:59 отображение, но и один ко многим картографирования, как уже было сказано.

Я либо не слышал (или прислушивался к недавнему) эпизоду DNR, о котором вы говорили (какое именно и какое время упоминалось в этой цитате). Но я считаю маловероятным, что они будут означать, что Linq-to-Sql не может обрабатывать отношения один-на-один.

Я думаю, что они означают, что Linq-to-Sql может выполнять только одно к одному, сопоставляя «сущности». Таким образом, ваша база данных может иметь CUSTOMER и INVOICE как отношение от одного до многих, а в Linq-to-Sql у вас будет объект Customer и объект под названием Invoice, где отношения между ними равны 1, а отношения между .NET и таблицы базы данных - от 1 до 1. Контракт Linq-to-Entities может иметь один-много отношений с их объектами, например, вы можете иметь одну таблицу базы данных с именем INVOICE, но вы можете иметь несколько объектов Linq, например Invoice и PaidInvoice и они будут ссылаться на одну и ту же таблицу базы данных, но у PaidInvoice будет столбец Paid_flg, равный 1, а не 0.

+0

это кажется мне наиболее вероятным – jcollum

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