これは非常に一般的なシナリオです。これがデータベーステーブルです。
CREATE TABLE `table1` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(45) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `table2` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(45) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `table1_table2` (
`ID1` int(11) NOT NULL,
`ID2` int(11) NOT NULL,
KEY `fk1_idx` (`ID1`),
KEY `fk2_idx` (`ID2`),
CONSTRAINT `fk1` FOREIGN KEY (`ID1`) REFERENCES `table1` (`ID`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `fk2` FOREIGN KEY (`ID2`) REFERENCES `table2` (`ID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
次に、私の Program.cs を次に示します。
static void Main(string[] args)
{
using (testEntities ctx = new testEntities())
{
table1 t1 = new table1
{
Name = "t1",
table2 = new List<table2>()
};
table2 t2 = new table2
{
Name = "t2"
};
t1.table2.Add(t2);
ctx.table1.Add(t1);
ctx.SaveChanges();
}
}
そして迷惑なエラーのスクリーンショット:
だからみんな、私を助けてください。私は何をすべきか?EF シナリオで .NET 用の mysql コネクタを使い始めた初日に、罠にはまったような気がします。