2

これは非常に一般的なシナリオです。これがデータベーステーブルです。

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 コネクタを使い始めた初日に、罠にはまったような気がします。

4

1 に答える 1