引用Alex James的回答Row insertion order entity framework:
您在上下文中执行操作的顺序可能与这些规则冲突。例如,如果你这样做: ctx.AddToProducts(新产品{Name =“Bovril”,Category = new Category {Name =“Food”}});
但由于参照完整性约束,我们必须在尝试插入数据库之前重新排序:
分类
产品
我的问题是我的代码突然以错误的顺序插入项目,即:
产品
类别
这是非常错误的 大家可以告诉我在哪里需要查看来解决这个问题吗?我确信我的Category表没有任何其他表的FK。
编辑:广泛的试验和错误每次修订都告诉我,这是因为edmx文件中的关联数据被意外删除了! 谢谢大家帮助我: - )
答案 0 :(得分:1)
Maybe there's something wrong with the universe, but probably not。由于它曾经工作,问题显然在你的代码中。
因此,首先要消除所有因素。例如。写一个插入类别和产品的小测试,保存。从那里开始工作:如果失败,监视生成的SQL,仔细检查数据库模式,验证实体框架模型(存储模型,映射,对象模型)。
如果第一次测试成功,请查看与实际代码的差异。添加代码,直到它再次开始失败。
系统地工作,最终你会发现错误。
答案 1 :(得分:1)
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 + "'
);