ПредишенСледващото

Entity Framework подкрепя прилагането на много-към-много (много-към-много) между таблиците в базата данни. Такава връзка в релационна база данни се осигурява чрез използването на междинен маса, която се свързва с две други маси чрез един към много. В резултат на това между двете таблици се формира много-към-много. В действителност, в това отношение, не е господар и на масата зависи, както вече го е описано за едно към едно и едно-към-много, междинното масата зависи от два основни таблици.

Нека да продължим разглеждането на този пример, модел, в който ние сме идентифицирали таблицата с клиентите, както и на неговите заповеди. В таблицата на поръчки (поръчки), ние използвахме поле, описващо името на продукта и неговата цена. Очевидно е, че използването на структурата на базата данни е неефективен. По-добрият подход, предвижда създаването на таблицата с продукти, която съдържа колекция от стоки за магазина, както и между таблици, продуктов и клиентите трябва да се създаде много-към-много чрез използването на междинен продукт в таблицата с поръчки. Това означава, че в контекста на нашия пример, много-към-много, каза, че един клиент може да поръча няколко продукта и един продукт може да се поръча от няколко потребители.

Нека да приложи този модел в Code-First. По-долу показва структурата на модела, при който рамката Entity автоматично разпознава много-към-много връзката между две маси Клиенти и продукти (в предишната статия, както и класа Поръчка премахнахме профил клас, които са били използвани в обсъждането на един-към-едно):

Ако стартирате приложението, рамката Entity автоматично пресъздава базата данни, тъй като модела, е променен. Код-първо ще бъде в състояние да признае връзката между тези класове на много-към-много и да се създаде една маса постановка, която съдържа външен ключ връзката към таблицата с клиентите и продуктите, както е показано на фигурата по-долу:

Entity рамка 6, много-към-много (много-към-много) между таблиците

Заслужава да се отбележи, че това са външни ключове и първични ключове постановка на маса. име постановка маса се състои от две свързани таблици в нашия пример се наричат ​​ProductCustomers. Имената на генерираните външни ключове следват същите конвенции, които сме описани по-рано. След много-към-много се дефинира, Entity Framework знам какво трябва да се използва SQL-декларация по вмъкване, изтриване и актуализиране на данните в съответните таблици.

Много-към-много, можете да персонализирате с помощта Владее инструменти API. Това може да бъде необходимо, ако използвате множество връзки между таблици, за да укажете в двойка навигационни функции, за да се гарантира реализацията на тази връзка. По-долу е пример за тази конфигурация:

Имайте предвид, че тук ние изрично посочва името на таблицата за спиране, когато се обадите метод помощник Карта (), в резултат на рамката Entity създава стартиране например таблицата на поръчки с името, а не ProductCustomers.

Ние също изрично посочва имената на чужди ключове, използвайки MapLeftKey () и MapRightKey () обект ManyToManyAssociationMappingConfiguration конфигурация, която се предава на карта () в параметъра за действие делегат. Тези методи показват на левия и десния клавиши за масата за спиране. За да се избегне объркване, което трябва да се помни едно просто правило, отляво ключовите точки до същността на класа, за които се обадихме HasMany () метод и преди, и на правилните ключови пунктове до същността на класа, за които се обадихме withmany (метод). Ако ги получите грешен начин нищо лошо няма да се случи, само на външен ключ CUSTOMERID ще се позовава на таблицата с продукти и ключа за външната ProductID до масата на клиента.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!