我在通过 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();
笔记 :
在开始时,Entity Framework 很好地插入了产品。然后它失败了,因为它试图在 LinkToPrivder 表中插入一个具有未知产品 ID 的行,如下所示。
INSERT
INTO LinkToProvider
VALUES(5, 0, 1.2)
它放置 0 而不是生成的 id。
但是,如果我单独插入一个产品而没有任何关系,则产品 ID 会在数据库中正确生成。
任何帮助都感激不尽 !谢谢你。