EF6 поставляемое соединение недопустимо, поскольку оно содержит недостаточную информацию о сопоставлении или метаданных.
привет,
на основе мой предыдущий вопрос ответы. и через 2 дня поиска я решаю изменить свой старый подход, который использую для настройки пользовательских параметров подключения.
но у меня все еще есть некоторые проблемы, я предпочел создать отдельный вопрос, потому что я думаю об этом по-другому.
обновление:
я изменил эту линию и теперь проблема была другой
entityBuilder.Metadata = @"res://*/MrSModels.MrSalesModel.csdl|res://*/MrSModels.MrSalesModel.ssdl|res://*/MrSModels.MrSalesModel.msl";
Что я уже пробовал:
я использую эту функцию для построения соединения с сущностью MySQL :
public static EntityConnection buildEntityConnection() { string mrsales_Coonn = "SERVER=" + server + ";Port=" + port + ";DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";" + OPTION + ";" + "charset=" + charset + ";Connect Timeout=1999999;"; myconn.mrsales_Coonn = mrsales_Coonn; // Specify the provider name, server and database. string providerName = "MySql.Data.MySqlClient"; // Initialize the EntityConnectionStringBuilder. EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder(); //Set the provider name. entityBuilder.Provider = providerName; // Set the provider-specific connection string. entityBuilder.ProviderConnectionString = myconn.mrsales_Coonn; // Set the Metadata location. entityBuilder.Metadata = @"res://*/MrSModels.MrSalesModel.csdl|res://*/MrSModels.MrSalesModel.ssdl|res://*/MrSModels.MrSalesModel.msl"; EntityConnection conn = new EntityConnection(entityBuilder.ToString()); return conn; }
также я добавил этот код в контекст :
public partial class mrsalesdbEntities : DbContext { //public mrsalesdbEntities() // : base("name=mrsalesdbEntities") //{ //} public mrsalesdbEntities(DbConnection existingConnection, string ConnectionString, bool contextOwnsConnection) : base(existingConnection, contextOwnsConnection) { }
кроме того, я создаю эту функцию, чтобы ее было легко редактировать.
public static mrsalesdbEntities OpenConn() { mrsalesdbEntities MrSalesContext = new mrsalesdbEntities(myconn.EFConnection, myconn.mrsales_EFCoonn, true); return MrSalesContext; }
когда мне нужно создать какой-либо запрос, я использую эту строку :
mrsalesdbEntities dbContext = ConnectionTools.OpenConn();
эта работа в запросе и не удалась в другом запросе в той же функции, и я не знаю причин
пример:- эта работа
mrsalesdbEntities db01 = ConnectionTools.OpenConn(); var test1 = db01.people_data.Find(1).pepole_Name; var testcount = db01.people_data.Count();
пример:- это не удалось
mrsalesdbEntities db01 = ConnectionTools.OpenConn(); var latest = db01.ad_backup_config; if (latest.Count() != 0) { DateTime BKDate = Convert.ToDateTime( latest.OrderByDescending(m=> m.backup_ID).FirstOrDefault().backup_Date); if (DateTime.Now >= BKDate.AddHours(Convert.ToDouble(SysSettings.BackupPeriod))) { return true; } else { return false; } } else { return true; }
ошибка :
Поставляемое соединение недопустимо, поскольку оно содержит недостаточную информацию о сопоставлении или метаданных.
Имя параметра: соединение