Conversation
tablosunda bir sütun olarak, Messages
ve diğer bazı verilerin yanı sıra bir sütun olarak Users
listesi vardır.Varlık Çerçevesi ile Görüşmeden Bir Kullanıcıyı Silme
Ben için arıyorum onlar başka yerde kullanılabilecek şekilde tamamen User
veya Conversation
silmeden, Conversation
tablodan bir User
kaldırın.
Ben Linq sorgu kullanarak bunu yapmak isteyen ama sorgu oluşturmak için benim girişimleri başarısız olmuştur
... Bunun nasıl emin değilim.
Herhangi bir yardım çok takdir edilecektir!
[HttpPut]
//[ResponseType(typeof(Conversation))]
public async Task<IHttpActionResult> RemoveUserFromGroup(String key, User user)
{
Conversation conver = await db.Conversations.FindAsync(key);
if (conver == null)
{
return NotFound();
}
IEnumerable<User> del = from d in conver.Users
where d.Email == user.Email
select d;
conver.Users.Remove(del); // ERROR ON THIS LINE AT "del"
await db.SaveChangesAsync();
return Ok(conver);
}
Bu kod parçası ne istiyorum yapmaz bunu ancak
Conversation
sınıfı için:
[DataContract]
public class Conversation
{
[Key]
[DataMember]
public string Key { get; set; }
[DataMember]
public string ConversationName { get; set; }
[DataMember]
public string Administrator { get; set; }
[DataMember]
public virtual ICollection<User> Users { get; set; }
[DataMember]
public virtual ICollection<Message> Messages { get; set; }
public Conversation()
{
Users = new HashSet<User>();
}
}
User
sınıfı:
[DataContract]
public class User
{
[Key]
[DataMember]
public string Email { get; set; }
[DataMember]
public string Password { get; set; }
[DataMember]
public bool Admin { get; set; }
[DataMember]
public virtual ICollection<Conversation> Conversations { get; set; }
public User()
{
Conversations = new HashSet<Conversation>();
}
}
Kodunuzun bir örneğini görebilir miyiz lütfen? – Timmoth
Bir null anahtar varsa, bu gerekli bir ilişki değil, o zaman sadece varlık yükleyebilir ve UserID özelliğini sıfırlayabilir ve sonra varlık kaydedebilirsiniz ve kullanıcı kaldırılacaktır. Kodunuzu gönderebilirseniz yardımcı olur. –
@JamesDev İlişki gerekli değil .. Bu yüzden Kullanıcıyı geri alabilir ve e-postasını (PK) boş olarak atayabilir miyim? – semiColon