Как я могу настроить сгенерированные EF классы моделей из базы данных? - PullRequest
0 голосов
/ 22 сентября 2019

Я делаю проект самостоятельно.Позвольте мне описать это: я пытаюсь настроить базу данных социальной сети в SQL Express с Entity Framework.Я создал таблицы в базе данных, а затем использовал EF для генерации моделей из базы данных.Он генерирует это, но немного не так.

Я сосредоточился в основном на дружеской части базы данных.Я создал таблицу под названием USERS.Затем я сделал стол под названием ДРУЖБА.Таблица FRIENDSHIP имеет 3 атрибута.Это FriendShipID, User1_ID и User2_ID.FriendShipID - это первичный ключ, остальные - FOREIGN KEY, ссылающиеся на таблицу UserID UserER.Когда я генерирую модель в VS с EF, в классе USER есть свойства:
public virtual ICollection<FRIENDSHIP> FRIENDSHIP{ get; set; } и public virtual ICollection<FRIENDSHIP> FRIENDSHIP1{ get; set; }, но я хочу только 1 свойство Friendship.Как я могу этого достичь?Это проблема сопоставления?

SQL:

CREATE TABLE USERS
(
    UserID int NOT NULL PRIMARY KEY,
    Age int NOT NULL,
    Nickname VARCHAR(25) NOT NULL
);
CREATE TABLE FRIENDSHIP
(
    FriendShipID int NOT NULL PRIMARY KEY,
    User1_ID int NOT NULL FOREIGN KEY REFERENCES  USERS (UserID),
    User2_ID int NOT NULL FOREIGN KEY REFERENCES USERS (UserID)
);

C # с EF: -В классе Users

public virtual ICollection<FRIENDSHIP> FRIENDSHIP{ get; set; }
public virtual ICollection<FRIENDSHIP> FRIENDSHIP1{ get; set; }

-В классе ModelBuilder

 modelBuilder.Entity<USERS>()
                .HasMany(e => e.FRIENDSHIP)
                .WithRequired(e => e.User1)
                .HasForeignKey(e => e.User1_ID)
                .WillCascadeOnDelete(false);

            modelBuilder.Entity<USERS>()
                .HasMany(e => e.FRIENDSHIP)
                .WithRequired(e => e.User2)
                .HasForeignKey(e => e.User2_ID)
                .WillCascadeOnDelete(false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...