2009-07-16 1 views
2

Ich habe diesen Satz gehört, als ich heute Morgen dot net rocks hörte. scheinbar unterstützt linq to sql nur eins-zu-eins-tabellen-mapping.Was bedeutet eins zu eins Tabellenzuordnung?

+0

an die Befragten: also, wenn Sie zwei verwandte Tabellen haben und ihre Beziehung eins zu eins ist (vs . eins zu vielen) dann hast du ein "one to one table mapping"? – MedicineMan

+0

@MedicineMan, ich denke, dass Sie und die Befragten hier das Zitat leicht falsch verstanden. Bitte beachten Sie meine Antwort als mögliche Alternative. Könnten Sie auch angeben, in welcher Folge und wenn möglich, wann das Zitat auftrat? Danke –

Antwort

1

Dies bedeutet, dass für jeden Eintrag in einer Tabelle ein einzelner verwandter Eintrag in einer anderen Tabelle vorhanden ist. Aber Linq to SQL unterstützt alle Arten von Datenbeziehungen, die nicht eins zu eins sind. Schauen Sie sich zum Beispiel die Join examples here an.

0

Eins zu eins Beziehung bedeutet für jeden Datensatz in der einen Tisch gibt es ein und nur ein Datensatz in der verknüpften Tabelle ...

Aber LinqToSql unterstützt das Zuordnen von 00.59 und ein bis viele Beziehungen ... Viele zu viele können durchgeführt werden, aber es erfordert einige Codierung ...

+1

Wäre es richtiger zu sagen, dass es in der betreffenden Tabelle nur einen Eintrag geben kann? –

4

One-to-One-Mapping bedeutet, dass eine übergeordnete Zeile nur eine untergeordnete Zeile haben kann. Es gibt verschiedene Arten von Mapping, wenn man bedenkt Design

One-To-Many: Ein Auto hat viele Teile
Many-To-One: Viele Autos nutzen den gleichen Teil
Many-to-many: Viele Teile sind in vielen Autos verwendet
One-To-One: Ein Teil in einem Auto nur einmal

verwendet wird
2

Ich weiß, dass Linq-to-Sql nicht nur für 12.59 Mapping, sondern viele Mapping auch eine nicht zulässt, wie bereits erwähnt.

Ich habe die DNR-Episode, die du erwähnt hast (welche und wann dieses Zitat erwähnt wurde) entweder nicht gehört (oder gehört). Aber ich halte es für unwahrscheinlich, dass sie bedeuten, dass Linq-to-Sql nicht mit einer oder vielen Beziehungen umgehen kann.

Ich denke, dass sie bedeuten, dass Linq-zu-Sql Eins zu Eins nur auf den "Entitäten" tun kann. Ihre Datenbank kann KUNDE und RECHNUNG als eine Eins-zu-Viele-Beziehung haben, und in Linq-zu-SQL haben Sie ein Objekt namens Kunde und ein Objekt namens Rechnung, wobei die Beziehung zwischen ihnen 1 zu viele ist, aber die Beziehung zwischen .NET und die Datenbanktabellen sind 1 zu 1. Um Linq-to-Entities zu kontrahieren, können eine oder mehrere Beziehungen zu ihren Objekten bestehen, zum Beispiel können Sie eine Datenbanktabelle INVOICE haben, aber Sie können mehrere Linq-Objekte haben, zum Beispiel Invoice und PaidInvoice Diese verweisen beide auf die gleiche Datenbanktabelle, aber bei PaidInvoice wird die Spalte "Paid_flg" auf 1 statt 0 gesetzt.

+0

das scheint mir am wahrscheinlichsten – jcollum