0
我有一個Conversation
表,它具有列表Users
作爲列,以及列表Messages
和其他一些數據。使用實體框架從對話中刪除用戶
我期待從Conversation
表中刪除一個User
,而不刪除User
或Conversation
一起,因爲他們可能在別處使用。
我不知道如何做到這一點?
我要做到這一點使用一個的LINQ查詢,但我在嘗試創建查詢沒有成功。
任何幫助將不勝感激!
[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);
}
這段代碼不會做我想做的它然而
Conversation
類:
[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
類:
[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>();
}
}
我們能否看到您的代碼示例? – Timmoth
如果它具有可爲空的鍵,即它不是必需的關係,那麼您可以簡單地加載實體並將UserID屬性爲空,然後保存該實體並將用戶移除。如果你可以發佈你的代碼,這將有所幫助。 –
@JamesDev關係不是必需的。所以我可以檢索用戶並將其電子郵件(PK)設置爲空? – semiColon