私のエンティティ:
UserProfile: - ここでは重要なことは何もありません。
サポートチケット: - ユーザープロファイル
SupportTicketMessage : - UserProfile - SupportTicket
私の問題は、SupportTicketMessage を挿入しようとするたびに、対応する SupportTicket を添付したにもかかわらず、追加の UserProfile がデータベース (複製) に挿入されることです。
これが私のコードです(SupportTicketクラス内にあるため、これはSupportTicketを意味します):
public void AddReply(UserProfile user)
{
SupportTicketMessage msg = new SupportTicketMessage(user, this);
using (DBContext db = new DBContext())
{
db.SupportTickets.Attach(msg.Ticket);
db.SupportTicketMessages.Add(msg);
db.SaveChanges();
}
}
これを実行するたびに、SupportTicketMessage は問題なく挿入されますが、既に一致するものが存在する場合でも、重複した UserProfile が挿入されます。
ここで何が問題なのですか?
ちなみに、supportticketmessage コンストラクターは次のとおりです。
public SupportTicketMessage(UserProfile author, SupportTicket ticket)
{
Author = author;
Ticket = ticket;
Date = DateTime.Now;
}