[英]Deleting Child Entries when deleting parent
我读过各种文章,但似乎没有一个与我的问题相符。 删除父项时,我需要删除链接到外键的子项。
目前,我有以下代码:
public async Task UpdateLineItemByOrderLineId(int orderLineId, int newQuantity)
{
var clientBasket = await GetBasketAsync();
var lineItem = clientBasket.OrderLines.FirstOrDefault(x => x.OrderLineId == orderLineId);
if (newQuantity == 0)
{
_orderLinesRepository.Delete(lineItem);
_orderLinesRepository.Save();
}
这链接到以下存储库
public class OrderLinesRepository : GenericRepository<OrderLine>, IOrderLinesRepository
{
public OrderLinesRepository(IDbContextFactory dbContextFactory)
: base(dbContextFactory)
{
}
}
帖子似乎提到了实体框架等,正因为我正在从提供给我的解决方案中学习C#来使我完成,所以我看不到能反映EF的匹配代码。
我不一定需要删除子元素,而只需将ForeignKey设置为null。 需要注意的一件事是,我可以将多个子项链接到ForeignKey。
实现上述目标的正确方法是什么?
编辑:外键分配
namespace TSW.Ecommerce.Data.Api
{
public class OrderDelegate
{
[Key]
public int OrderDelegateId { get; set; }
[ForeignKey("OrderLineId")]
public virtual OrderLine OrderLine { get; set; }
public int? OrderLineId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
}
}
正确的解决方案是:
foreach (var m in lineItem.DelegatesList.Where(f=>f.OrderLineId == orderLineId))
{
lineItem.DelegatesList.Remove(m);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.