实体框架3.5SP1插入顺序错误

本文关键字:顺序 错误 插入 5SP1 框架 实体 | 更新日期: 2023-09-27 17:53:21

引自Alex James的回答行插入顺序实体框架:

在上下文中执行操作的顺序可能与这些规则相冲突。例如,如果你这样做:ctx。AddToProducts(新产品{Name = "Bovril",类别=新类别{Name = "Food"}});

,但由于引用完整性约束,我们必须在尝试插入到数据库之前重新排序:
类别
产品

我的问题是我的代码突然以错误的顺序插入项,即:


产品类别

是非常错误的。
每个人都能告诉我我需要看哪里来解决这个问题吗?我确信我的Category表没有到任何其他表的任何FK。

谢谢:-)

编辑:广泛的试验和错误,每次修订都告诉我,这是因为edmx文件中的关联数据被意外删除了!谢谢大家的帮助:-)

实体框架3.5SP1插入顺序错误

也许宇宙出了什么问题,但也可能不是。因为它曾经工作过,所以问题显然在您的代码中。

因此,从消除所有因素开始。例如,编写一个插入类别和产品的小测试,并保存它。从那里开始工作:如果失败,监视生成的SQL,仔细检查数据库模式,验证实体框架模型(存储模型,映射,对象模型)。

如果第一个测试成功,看看与实际代码的差异在哪里。添加代码,直到它再次开始失败。

系统地工作,最终你会发现错误。

Insert into Customer_Receipt_Table
(
    MemAsso_Code,MAName,Allotmentno,Name,SchemeName,
    InstallmentAmount,InstallmentNo,ModeOfPay,
    CU_Date,VaucharNo,Date
) 
values
(
     '" + lblintroducerid.Text + "',
     '" + lblmaname.Text + "',
     '" + lblallotmentno.Text + "',
     '" + lblname.Text + "',
     '" + lblScheme.Text + "',
     '" + lblinsamnt.Text + "',
     '1',
     '" + radiobtnpayment.SelectedItem.Text + "',
     '" + DateTime.Now.ToShortDateString() + "',
     '" + txtvousherno.Text + "',
     '" + lbldate.Text + "'
);