我通过Entity Framework 5插入相关行时遇到了问题。我将它与RIA Services和.NET Framework 4.5一起使用。数据库系统是MySQL 5.6。连接器版本是6.6.5。使用存储过程和auto_increment字段插入实体框架相关对象
它引发了外键约束异常。
我选择了简化模型来揭露我的问题。
LDM
提供商(ID,姓名,地址)
条(ID,名称,价格)
LinkToProvider(PROVIDER_ID,article_id的,provider_price)
// Id是auto_increment列。
首先我创建一个新的文章实例。我将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将在数据库中正确生成。
任何帮助将不胜感激! 谢谢。