Имеется уже готовая БД, заполненная. Code first не нужен.
Есть сущности Message, User, Operator
public class Message
{
public int MessageID { get; set; }
public string Text { get; set; }
public int UserID { get; set; }
public User User{ get; set; }
public int OperatorID { get; set; }
public virtual Operator Operator { get; set; }
}
public class User
{
public int UserID { get; set; }
public string Name { get; set; }
}
public class Operator
{
public int OperatorID { get; set; }
public string Name { get; set; }
}
Схема БД такая:
CREATE TABLE [dbo].[Messages] (
[MessageID] INT IDENTITY (1, 1) NOT NULL,
[OperatorID] INT NOT NULL,
[UserID] INT NOT NULL,
[Text] TEXT NOT NULL,
PRIMARY KEY CLUSTERED ([MessageID] ASC),
CONSTRAINT [FK_Operator] FOREIGN KEY ([OperatorID]) REFERENCES [dbo].[Operators] ([OperatorID]),
CONSTRAINT [FK_User] FOREIGN KEY ([UserID]) REFERENCES [dbo].[Users] ([UserID])
);
Вопрос вот в чём: Во время выполнения программы создаются экземпляры классов Operator, User и Message и нужно добавить в БД этот Message. Делаю так - dbContext.Messages.Add(new Message(... бла бла)); db.SaveChanges();
В БД запись появляется и UserId и OperatorId подхватываются из свойств созданных экземпляров.
Но проблема в том, что когда мне нужно выгрузить данные из БД, то EF не понимает как в
Message инициализировать свойства: public Operator Operator {get; set;} и public User User{get; set;}. Поэтому они всегда NULL. Приходится по свойствам UserId и OperatorId в dbContext'е искать. Инет перерыл, но не нашел. Буду благодарен любому ответу.