Loading...
mirela95 avatar mirela95 56 Точки

Композитен ключ със string и int

Здравейте,

Някой може ли да ми обясни как да направя междинната таблица CountriesContinents от упражненията Introduction to .NET Core and EF Core, задачата Footbal Betting, след като по условие Country има ключ string, а Continents int? 

0
C# Web Development Basics
Lyubozar avatar Lyubozar 47 Точки

CountryId в междинната таблица трябва да ти е string както е Id в таблицата Countries.

В OnModelCreating трябва да е това:

builder.Entity<CountryContinent>()
                .HasKey(cc => new { cc.CountryId, cc.ContinentId });

0
26/09/2017 19:59:42
RoYaL avatar RoYaL Trainer 6849 Точки

Не съм сигурен, че има нужда от отделно Entity за Many2Many релацията. Дали няма да стане, ако кажеш, че всяка държава HasMany Континенти, и всеки континент HasMany Държави?

0
Lyubozar avatar Lyubozar 47 Точки

Задачата изисква отделна таблица, иначе отделно трябва да се направят и връзките в DbContexta

0
mirela95 avatar mirela95 56 Точки

И на мен по-удачно ми се струват другите начини, но в крайна сметка я направих както пише по условие. 

Благодаря на всички! 

0
RoYaL avatar RoYaL Trainer 6849 Точки

Любозар, ако направиш държавата да има множество (Set, List, ...) континенти и континентите да имат множество държави, това само ще създде свързващата ManyToMany таблица. Това, че иска отделна таблица, не означава че иска отделно Entity :))

Това разбира се е също така зависимо от конфигурации и версия на Entity Framework. От EF Core 1.1.0 е задължително да имаш свързващо Entity, към което другите две да сочат. Преди това не. Интересното е, че има план и след 1.1 и 2.0 да се махне, така че зависи от версията която ползвате. И вероятно и от версията на колегата, който проверява.

P.S.: Намерих issue в GH Issues за бъдещите планове, там има и интересни предложения за по-специфичини ситуации: https://github.com/aspnet/EntityFrameworkCore/issues/1368

0
27/09/2017 00:29:18
Lyubozar avatar Lyubozar 47 Точки

В момента ползваме 2.0 и на упражненията ни е показано с отделно Entity към което двете имат множество и това била една от разликите със стария framework. Надявам се занапред да го махнат, защото наистина е излишно писане на код.

0
Tanyo avatar Tanyo 152 Точки

EF Core изисква мапинг клас за много към много, както и описването на всички  рилейшъни във Fluent API-to. Говори се че ще вкарат и досегашния вариант в който не е необходимо ново ентити, но към комента не е съпортван.

Реално не е болка за умиране, създаването на мапинг ентити и описването на връзките във Fluent API - то се прави за макс. 1 минута... 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.