0
我面臨着一個問題,即我的實體框架不斷古怪行爲時,我嘗試實例任何類。我正嘗試使用默認的用戶管理器行爲將數據存儲在我的數據庫中。實體框架類的實例
一旦我開始實例化一個新的通知,它補充說,通知的通知在它堅持這些變化和處理來自實體框架的錯誤,指出存在的多重問題應用程序的用戶類可用列表之前,我怎麼能告訴實體框架的更改不會持久,一旦我在這裏實例化一個類CF是我的控制器代碼:
public string AddFriend(string AddedUserId)
{
var AddedUser = UserManager.FindById(AddedUserId);
var AddingUser = UserManager.FindById(User.Identity.GetUserId());
var friendship = new Friend(AddingUser, AddedUser) { IsInvitation = true
};
AddingUser.Friends.Add(friendship);
AddedUser.Notifications.Add(new Notification(AddingUser,
"Friend Invitation",
"The user " + AddingUser.FirstName + " " + AddingUser.LastName +
"Sent you a friend invitation", friendship));
UserManager.Update(AddedUser);
UserManager.Update(AddingUser);
return "Friend was added successfully";
}
我Notification類:
[Table("Notifications")]
public class Notification
{
[Key]
public int NotificationId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
[Required]
public ApplicationUser AssociatedUser { get; set; }
public Friend AssociatedFrienship { get; set; }
public GroupMember AssociatedGroup { get; set; }
public ChannelMember AssociatedChannel { get; set; }
public Message AssociatedMessage { get; set; }
public bool Consulted { get; set; }
public Notification()
{
}
public Notification(ApplicationUser associatedUser, string title, string content, Friend associatedFriend = null, GroupMember associatedGroup = null, ChannelMember associatedChannel = null, Message associatedMessage = null)
{
AssociatedUser = associatedUser;
Title = title;
Content = content;
AssociatedChannel = associatedChannel;
AssociatedGroup = associatedGroup;
AssociatedFrienship = associatedFriend;
AssociatedMessage = associatedMessage;
Consulted = false;
}
}
我ApplicationUser類:
public partial class ApplicationUser : IdentityUser
{
public virtual List<Notification> Notifications { get; set; }
}
我FluentAPI代碼:
modelBuilder.Entity<Notification>()
.HasRequired(c => c.AssociatedUser)
.WithMany(c => c.Notifications);
我得到的誤差是就行:> UserManager.Update(addedUser);它說實體框架的約束違規行爲,關係的作用(Notification_AssociatedUser_Target)(Qwirk.Models.Notification_AssociatedUser)的多樣性爲1或0..1。 在此先感謝!
你想用'Notification'&'AssociatedUser'表建立什麼樣的關係?首先根據表結構嘗試在'modelBuilder.Entity()'中添加'HasForeignKey'。 –
通知只能有一個關聯用戶希望是接收通知的人,並且應用程序用戶可以分配給他的許多通知。有關模型構建器的HasForeignKey我已經嘗試過將它添加到模型中,通過只指定在我通知其他領域,並似乎流利的API鏈接,它根本不會解決問題。 –
你想申請'ApplicationUser'和'Notifications'之間的1..n關係嗎?嘗試設置'公共虛擬ApplicationUser AssociatedUser {get;組; }'通知中&'公共虛擬ICollection <通知>通知{get;組; }在ApplicationUser中。然後,應用此模型綁定:'modelBuilder.Entity <通知>()HasRequired(C => c.AssociatedUser).WithMany(C => c.Notifications).HasForeignKey(C => C [ForeignKeyFieldName]。)WillCascadeOnDelete。 (假);' –