Can't import foreign key in MySQL DB using C#, Visual Studio and MySQL.Data -


i getting data mssql db entity framework using c# , visual studio , importing in mysql db using mysql.data nuget package , c# , visual studio again. if have data without foreing keys ok , import done. here code:

var context = new supermarketschainentities(); var measures = context.measures; var supermarkets = context.supermarkets; var vendors = context.vendors; var expenses = context.expenses; var products = context.products;      string myconn = "server=localhost;database=supermarkets_chain;uid=root;pwd=;";     mysqlconnection conn = new mysqlconnection(myconn);     conn.open();      //insert measures     foreach (var measure in measures)     {         string insertquery = "insert measures (id, name) values (null, @name)";         mysqlcommand cmd = new mysqlcommand(insertquery, conn);         cmd.parameters.addwithvalue("@name", measure.name);         cmd.executenonquery();     } 

but when try import data in table one-to-many relationships , foreign keys:

foreach (var product in products)         {             string insertquery = "insert products (id, name, price, measure_id, vendor_id) values (null, @name, @price, @measure_id, @vendor_id)";             mysqlcommand cmd = new mysqlcommand(insertquery, conn);             cmd.parameters.addwithvalue("@name", product.name);             cmd.parameters.addwithvalue("@price", product.price);             cmd.parameters.addwithvalue("@measure_id", product.measure);             cmd.parameters.addwithvalue("@vendor_id", product.vendor);             cmd.executenonquery();               } 

something goes wrong , following exception:

unhandled exception: mysql.data.mysqlclient.mysqlexception: cannot add or update  child row: foreign key constraint fails (`supermarkets_chain`.`products`, c onstraint `fk_products_measures` foreign key (`measure_id`) references `measures ` (`id`) on delete no action on update no action)    @ mysql.data.mysqlclient.mysqlstream.readpacket()    @ mysql.data.mysqlclient.nativedriver.getresult(int32& affectedrow, int64& nsertedid)    @ mysql.data.mysqlclient.driver.getresult(int32 statementid, int32& affected rows, int64& insertedid)    @ mysql.data.mysqlclient.driver.nextresult(int32 statementid, boolean force)     @ mysql.data.mysqlclient.mysqldatareader.nextresult()    @ mysql.data.mysqlclient.mysqlcommand.executereader(commandbehavior behavior )    @ mysql.data.mysqlclient.mysqlcommand.executenonquery()    @ sqltomysql.program.main(string[] args) in d:\softuni\databaseapps\teamwork \sqltomysql\sqltomysql\program.cs:line 67 

can me handle problem , import data properly. attaching db schema here.


Comments