У меня есть старое консольное приложение C #, которое я сейчас обновляю, чтобы сначала использовать код Entity Framework (последняя версия).
У меня есть 20+ таблиц, которые будут созданы в базе данных.
Один из моих методов -
static void DeleteModelInDb(Model pdModel, ExporterContext db) {
string[] tables = new string[] { "PD_COLUMN", "PD_COLUMN_EXTENDED", "PD_COLUMNRULE", "PD_COLUMNSOURCE", "PD_DB_PACKAGE", "PD_DB_PACKAGE_PROC_PARAMETER", "PD_DB_PACKAGE_PROCEDURE", "PD_DB_PACKAGE_TYPE", "PD_DB_PACKAGE_VARIABLE", "PD_DIAGRAM", "PD_DIAGRAM_TABLE", "PD_DOMAIN", "PD_DOMAIN_VALUES", "PD_INDEX", "PD_INDEX_COLUMN", "PD_JOIN", "PD_MODEL", "PD_MODEL_EXTENDED", "PD_MODEL_CHANGES", "PD_MODELSOURCE", "PD_PACKAGE", "PD_REFERENCE", "PD_RULE", "PD_TABLE", "PD_TABLE_EXTENDED", "PD_TABLE_CHANGES", "PD_TABLE_KEY", "PD_TABLE_KEY_COLUMN", "PD_TABLESOURCE", "PD_VIEW", "PD_VIEWCOLUMN", "PD_VIEWSOURCE" };
SqlConnection con = new SqlConnection("definition of con...");
con.Open();
SqlCommand com = con.CreateCommand();
foreach (string table in tables)
{
com.CommandText = "DELETE FROM " + table + " WHERE MODEL_CODE = '" + pdModel.Code + "'";
com.ExecuteNonQuery();
}
com.Dispose();
}
Я хотел бы сделать что-то подобное, используя Entity Framework.Но я не хочу писать этот код удаления для каждой таблицы.
var x = (from y in db.PdColumn
where y.ModelCode == pdModel.Code
select y).FirstOrDefault();
db.PdColumn.Remove(x);
db.SaveChanges();
Может кто-нибудь помочь?