【发布时间】:2013-04-15 08:06:20
【问题描述】:
我在通过 Entity Framework 5 插入相关行时遇到问题。我将它与 RIA 服务和 .NET Framework 4.5 版一起使用。数据库系统为 MySQL 5.6。连接器版本为 6.6.5。
引发外键约束异常。
我选择简化模型来暴露我的问题。
LDM
提供者(ID、姓名、地址)
文章(id、名称、价格)
LinkToProvider(provider_id, article_id, provider_price)
// Id 是 auto_increment 列。
首先,我创建了一个 Article 的新实例。我将 LinkToProvider 的一个实例添加到文章的 LinkProvider 集合中。在此 LinkToProvider 对象中,引用了产品本身。还引用了现有的提供程序。 然后我提交更改。
来自 DataViewModel 的示例代码
this.CurrentArticle = new Article();
...
this.CurrentArticle.LinkToProvider.Add(
new LinkToProvider { Article = this.CurrentArticle, Provider =
this.ProviderCollection.CurrentItem }
);
...
this.DomainContext.articles.Add(this.CurrentArticle);
this.DomainContext.SubmitChanges();
注意:
一开始实体框架就很好地插入了产品。然后它失败了,因为它尝试在 LinkToPrivder 表中插入一行,其产品 ID 未知,如下所示。
INSERT
INTO LinkToProvider
VALUES(5, 0, 1.2)
它放置 0 而不是生成的 id。
但是,如果我单独插入一个产品而没有任何关系,那么产品 ID 会在数据库中正确生成。
任何帮助将不胜感激! 谢谢。
【问题讨论】:
标签: mysql entity-framework foreign-keys ria auto-increment