что означает сопоставление таблиц один в один? - PullRequest
2 голосов
/ 16 июля 2009

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

Ответы [ 5 ]

4 голосов
/ 16 июля 2009

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

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

3 голосов
/ 16 июля 2009

Один к одному, один ко многим, многие ко многим - это термины, которые определяют множественность отношений.

http://www.databaseprimer.com/relationship.html

2 голосов
/ 17 июля 2009

Я знаю, что Linq-to-Sql допускает не только однозначное, но и однозначное отображение, как уже упоминалось.

Я либо не слышал (или слушал недавно) эпизод 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.

1 голос
/ 16 июля 2009

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

0 голосов
/ 16 июля 2009

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

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

...