Могу ли я сделать Entity Ассоциации необязательными или обнуляемыми? - PullRequest
0 голосов
/ 17 июня 2011

У меня есть супергерой.У супергероев может быть много оружия.Супергерои могут иметь много транспортных средств.Супергерои могут прикреплять свое оружие к транспортным средствам, но они не должны этого делать.

http://fm001 -forumimages.s3.amazonaws.com / EntityHero.png

ВEntity Framework, если я создаю оружие и назначаю его супергерою, он также заставляет меня прикрепить его к транспортному средству (ошибка ниже).

  1. Это ожидаемое поведение?
  2. Какое правильное сопоставление сущностей между Супергероем, Оружием и Транспортным средством?
  3. Какой пример поисковой фразы Google поможет вам лучше понять это?

Спасибо!

Ответы [ 2 ]

1 голос
/ 17 июня 2011

Отключены ваши базовые отношения между сущностями, оружием и транспортными средствами, а также супергероями и оружием.

Вы захотите сделать это отношениями многие ко многим, т.е. Есть много транспортных средств с большим количеством оружия, а также много оружия, которое принадлежит многим транспортным средствам.

Вы можете сделать это с помощью промежуточной сущности, которая отображает как оружие, так и транспортные средства, а также супергероя и оружие. взгляните на Отношения ко многим ко многим с EF

1 голос
/ 17 июня 2011

Вам нужно отношение многих ко многим в отношении оружия к супергероям и оружия к транспортным средствам. Скорее всего, это будет выражено в виде пары таблиц связывания, например:

CREATE TABLE SuperheroWeapons (
    SuperheroId bigint NOT NULL,
    WeaponId bigint NOT NULL,
    CONSTRAINT SuperheroWeapons_PK PRIMARY KEY CLUSTERED (SuperheroId ASC, WeaponId ASC),
    CONSTRAINT SuperheroWeapons_FK_SuperheroId FOREIGN KEY (SuperheroId) REFERENCES Superheros (SuperheroId),
    CONSTRAINT SuperheroWeapons_FK_WeaponId FOREIGN KEY (WeaponId) REFERENCES Weapons (WeaponId)
)

и аналогичные для таблицы VehicleWeapons.

...