实体框架3.5SP1插入顺序错误
本文关键字:顺序 错误 插入 5SP1 框架 实体 | 更新日期: 2023-09-27 17:53:21
引自Alex James的回答行插入顺序实体框架:
在上下文中执行操作的顺序可能与这些规则相冲突。例如,如果你这样做:ctx。AddToProducts(新产品{Name = "Bovril",类别=新类别{Name = "Food"}});
,但由于引用完整性约束,我们必须在尝试插入到数据库之前重新排序:
类别
产品
我的问题是我的代码突然以错误的顺序插入项,即:
产品类别
是非常错误的。
每个人都能告诉我我需要看哪里来解决这个问题吗?我确信我的Category表没有到任何其他表的任何FK。
谢谢:-)
编辑:广泛的试验和错误,每次修订都告诉我,这是因为edmx文件中的关联数据被意外删除了!谢谢大家的帮助:-)
也许宇宙出了什么问题,但也可能不是。因为它曾经工作过,所以问题显然在您的代码中。
因此,从消除所有因素开始。例如,编写一个插入类别和产品的小测试,并保存它。从那里开始工作:如果失败,监视生成的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 + "'
);