Я пытаюсь обновить ConversationId в моей таблице пользователей и сообщений с новым идентификатором беседы, создаваемым в моем методе.
как только я пытаюсь сохранить изменения в базе данных, я получаю эту ошибку:
Невозможно вставить явное значение для столбца идентификаторов в таблицу «Сообщения», когда для IDENTITY_INSERT установлено значение OFF.
мои модели:
public class Conversation
{
public int ConversationId { get; set; }
public ICollection<User> Users { get; set; } = new Collection<User>();
public ICollection<Message> Messages { get; set; } = new Collection<Message>();
}
public class Message
{
[Key]
public int MessageId { get; set; }
public string MessageContent { get; set; }
public DateTime DateCreated { get; set; }
}
public class NewMessageViewModel
{
public Message Message { get; set; }
public User Sender { get; set; }
public User Receiver { get; set; }
}
public class User
{
[Key]
public int UserId { get; set; }
public string Username { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public ICollection<Message> Messages { get; set; } = new Collection<Message>();
}
и мой метод контроллера:
public async Task<ActionResult> SendMessage([FromBody] NewMessageViewModel content)
{
var newMessage = new Message
{
MessageContent = content.Message.MessageContent,
DateCreated = DateTime.Now
};
var newConversation = new Conversation
{
Users = { content.Sender, content.Receiver },
Messages = { content.Message }
};
var conversations = _dbContext.Conversations;
conversations.Add(newConversation);
await _dbContext.SaveChangesAsync();
}
}
}
Итак, на первый взгляд кажется, что я неправильно разделяю разговоры? это не получение бесед. пользователей или бесед. сообщений. Но я не уверен, полностью ли это проблема, поскольку я смотрю так, что трудно быть объективным!
РЕДАКТИРОВАТЬ:
Просто глядя на то, что я прохожу в своем почтовом запросе:
{"message": {"messageId": 1, "messageContent": " HelloWord "," dateCreated ":" 2020-05-26T11: 56: 43.8901969 + 01: 00 "}," sender ": {" userId ": 2," username ":" Test "," firstName ":" Test " , "lastName": "Тест", "messages": null}, "Receiver": {"userId": 1, "username": "AndyStav", "firstName": "Andy", "lastName": "Stav" , "messages": null}}
, похоже, проблема в том, что я передаю значение идентификатору сообщения!
такой дурак, я использовал этот json ранний в некоторых тестах и не вынимал его!