, bu hatayı alıyorum tip 'Konuşma' konulu bildirilen özelliği değildir Konuşma ve Kullanıcı arasındaki ilişkiyi eşleştirirken, Konuşma ve Kullanıcı ikiden fazla ilişkiyle bağlantılıdır, örn. Görüşme, Kullanıcıya işaret eden iki yabancı tuşa sahiptir.navigasyon özelliği 'SenderID' ı Güncelleme-Veritabanı yapmaya çalıştığınızda
Kullanıcı ve Görüşmenin nasıl bağlandığı:Kullanıcı:
public class User
{
[Key]
[HiddenInput(DisplayValue = false)]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid UserId { get; set; }
public virtual ICollection<Conversation> ConversationSenders { get; set; }
public virtual ICollection<Conversation> ConversationRecievers { get; set; }
Konuşma:
Kullanıcı:
public class User
{
[Key]
[HiddenInput(DisplayValue = false)]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid UserId { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid CollegeId { get; set; }
public int RoleId { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[Required]
[DataType(DataType.Password)]
public string Password { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Surname { get; set; }
public string Gender { get; set; }
//role
public DateTime? DateOfBirth { get; set; }
public string ImageURL { get; set; }
[ForeignKey("CollegeId")]
public virtual College College { get; set; }
[ForeignKey("RoleId")]
public virtual UserRole UserRole { get; set; }
public virtual ICollection<Advert> Adverts { get; set; }
public virtual ICollection<Competition> Competitions { get; set; }
public virtual ICollection<Message> Messages { get; set; }
public virtual ICollection<Conversation> ConversationSenders { get; set; }
public virtual ICollection<Conversation> ConversationRecievers { get; set; }
public virtual ICollection<UserOS> UserOses { get; set; }
Konuşma:
İştepublic class Conversation
{
[Key]
[HiddenInput(DisplayValue = false)]
public Guid ConversationId { get; set; }
[ForeignKey("SenderId")]
public Guid SenderId { get; set; }
[ForeignKey("RecieverId")]
public Guid RecieverId { get; set; }
[InverseProperty("ConversationSenders")]
public virtual User Sender { get; set; }
[InverseProperty("ConversationRecievers")]
public virtual User Reciever { get; set; }
}
bütün koddur
public class Conversation
{
[Key]
[HiddenInput(DisplayValue = false)]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ConversationId { get; set; }
[ForeignKey("SenderId")]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid SenderId { get; set; }
[ForeignKey("RecieverId")]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid RecieverId { get; set; }
[InverseProperty("ConversationSenders")]
public virtual User Sender { get; set; }
[InverseProperty("ConversationRecievers")]
public virtual User Reciever { get; set; }
public virtual ICollection<Message> Messages { get; set; }
}
yanlışlıkla properties.corrected sürümden bu iki özelliğin attribute.remove [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
işaretlenmiş bu iki çizgi olmalıdır
public class Message
{
[Key]
[HiddenInput(DisplayValue = false)]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid MessageId { get; set; }
[HiddenInput(DisplayValue = false)]
public Guid UserId { get; set; }
[HiddenInput(DisplayValue = false)]
public Guid ConversationId { get; set; }
public string Text { get; set; }
public bool? IsSeen { get; set; }
[ForeignKey("UserId")]
public virtual User ConversationSender { get; set; }
[ForeignKey("ConversationId")]
public virtual Conversation Conversation { get; set; }
}
Onları kaldırıldı ama yine aynı hata – hyperN
sen Gönderen kodunu gönderebilir ve) =
bunu test ettik ve şimdi her şey gayet iyi çalışıyor: DBContext bu kodu:
Ve çözüm
olduğunu Alıcı da mı? –@ Behnam Esmaili Gönderici ve Alıcı aslında Kullanıcıdır, Sohbet'den Kullanıcıya kadar birçok bağlantı var. Bunları kod olarak görebilirsin, ama ben burada kesin bir parçaya değineceğim, böylece daha kolay olacak kodu oku: Kullanıcı 'public virtual ICollection KonuşmaSürücüler {get; set; } kamu sanal ICollection KonuşmaSürümeyenler {get; set; } ' –
hyperN