我有两个实体材料和供应商,因为关系我创建了一个中间实体<If "%{REQUEST_URI} =~ /\.(gif|jpe?g|png|css|js)$/">
#put your header set stuff here
</If>
:
MaterialWithSuppliers
当我尝试删除Material中的一条记录时,我必须首先删除[Key]
[StringLength(150)]
public string Id { get; set; }
[ForeignKey("Material")]
public string MaterialNo { get; set; }
public virtual Material Material { get; set; }
[ForeignKey("Supplier")]
public int SupplierId { get; set; }
public virtual Supplier Supplier { get; set; }
中的记录,但是在我尝试删除它之后会发生奇怪的事情:
MaterialWithSuppliers
var MaterialWithSupplier = db.MaterialWithSuppliers.Where(m => m.MaterialNo == MaterialNo).ToList();
if (MaterialWithSupplier.Count > 0)
db.MaterialWithSuppliers.Remove(MaterialWithSupplier[0]);
中的所有记录都已删除。为什么呢?
答案 0 :(得分:0)
如果我理解正确的话:
var mws = db.MaterialWithSuppliers.Where(m => m.MaterialNo == MaterialNo);
var material = mws.FirstOrDefault()?.Material;
db.MaterialWithSuppliers.RemoveRange(mws);
if (material != null)
{
db.Materials.Remove(material);
}
db.SaveChanges();
首先,您必须从MaterialWithSuppliers
表中检索要删除的所有对象。
其次,找到 material
实体并将其删除。
最后,数据库中的保存更改。
答案 1 :(得分:0)
原因是:LinkedList
在我放弃这一行后,它正常工作