[英]Linq to Entities - how to delete many records with inner join
我有兩節課:
public class Address
{
[Key]
public int ID_Address { get; set; }
public string URL { get; set; }
和:
public class Category_Address
{
[Key]
public int ID_Category_Address { get; set; }
public int ID_Category { get; set; }
public virtual Category Category { get; set; }
public int ID_Address { get; set; }
public virtual Address Address { get; set; }
}
我想從URL = "anytextIwrite"
Address
表中選擇ID_Address
,並刪除Category_Address
具有與我選擇的ID_Address
相同的每個記錄。 我怎樣才能做到這一點 ?
現在,我以一些假設編寫了這篇文章。 顯然,您將要使用自己的數據庫名稱以及它們想要使用的任何組名稱,但這是一個相當簡單的LINQ語句和聯接,然后是應該執行所需操作的foreach。
var toDelete = from addr in addresses
join cate in category_addresses on addr.id_address equals cate.id_address
where addr.url = "anytextIwrite"
select cate;
foreach (var record in toDelete) {
db.category_addresses.DeleteOnSumbit(record);
}
如果仍處於活動狀態,請嘗試如下操作:
using (var context = new YourDbModel())
{
var deletingAddresses = context.Category_Addresses
.Where(ca => ca.Address.URL == "anytextIwrite")
.Select(ca => ca.Address)
.ToArray();
foreach(var address in deletingAddresses)
{
context.Category_Addresses.Attach(address);
var entry = context.Entry(address);
entry.State = EntityState.Deleted;
}
context.SaveChanges();
}
它對我有用,所以也許您需要同樣的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.