Matrimony Ответов: 1

Вопрос Entity framework - добавить сущность


Пользовательская таблица:
Идентификатор пользователя (ПК)
имя пользователя
CompanyID (FK NOT NULL)

Таблица компании:
CompanyID (PK)
Название организации

модель entity framework (v3. 5) генерируется следующим образом :
public class User
{
  public string UserID;
  public string UserName;
  public Company company;
}

public class Company
{
   public string CompanyID;
   public string CompanyName;
}


Вы можете видеть, что в классе User нет поля CompanyID.Затем как добавить нового пользователя в базу данных.

Что я уже пробовал:

Company c = new Company();
c.CompanyID = "...";

User u = new User();
...
u.company = c;

DBContext.AddUsers(u);
DBContext.SaveChanges();

это приведет к тому, что EF сначала добавит новую компанию в базу данных, что в конечном итоге приведет к исключению дубликата ключа.

я попытался настроить свойство "внешний ключ", как версии Entity Framework, но потерпел неудачу.

Richard Deeming

Выберите существующую компанию из базы данных и установите для нее компанию пользователя.

Matrimony

это единственный способ сделать это? у меня уже есть CompanyGUID, я не хочу подключать базу данных, чтобы получить объект компании. мне это не нужно

Richard Deeming

В более поздних версиях Entity Framework вы можете настроить свойство "внешний ключ", которое позволит вам это сделать.
Отношения Entity Framework и свойства навигации[^]

Вам нужно будет посмотреть, сможете ли вы сделать это в той версии, которую вы используете, или если вы можете обновить ее до более поздней версии.

Matrimony

Я пробовал, но это не сработало.

Richard Deeming

Затем обновите свой вопрос, чтобы показать, что вы пробовали и что пошло не так.

Matrimony

сделано.

1 Ответов

Рейтинг:
1

kuldeepnageshwar

сначала создайте модель userview, такую же, как таблица user в базе данных, а затем добавьте эту модель userview в свою базу данных.