public ActionResult DeleteConfirmed(short id) { var constring = System.Configuration.ConfigurationManager.ConnectionStrings["pubsEntities"].ConnectionString; if (constring.ToLower().StartsWith("metadata=")) { System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(constring); constring = efBuilder.ProviderConnectionString; } var con = new SqlConnection(constring); con.Open(); string query = "SELECT COUNT(*) FROM employee"; var cmd = new SqlCommand(query, con); int rowsAmount = (int)cmd.ExecuteScalar(); employee employee; for (int i = 0; i < rowsAmount; i++) { employee = db.employee.FirstOrDefault(m => m.job_id == id); if (employee == null) { } else { db.employee.Remove(employee); db.SaveChanges(); } } jobs jobs = db.jobs.Find(id); db.jobs.Remove(jobs); db.SaveChanges(); return(RedirectToAction("Index")); }
protected void btnConfirm_Click(object sender, EventArgs e) { UserStore <IdentityUser> userStore = new UserStore <IdentityUser>(); string connectionStringEF = System.Configuration.ConfigurationManager .ConnectionStrings["VegetableDBEntities"].ConnectionString; var efBuilder = new System.Data.Entity.Core.EntityClient .EntityConnectionStringBuilder(connectionStringEF); string connectionStringOK = efBuilder.ProviderConnectionString; userStore.Context.Database.Connection.ConnectionString = connectionStringOK; var manager = new UserManager <IdentityUser>(userStore); var user = manager.Find(txtLogin.Text, txtPasword.Text); if (user != null) { var authentificationManager = HttpContext.Current.GetOwinContext().Authentication; var userIdentity = manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie); authentificationManager.SignIn( new AuthenticationProperties { IsPersistent = false }, userIdentity ); Response.Redirect("~/Index.aspx"); } else { litStatus.Text = "Неправильно введена электронная почта или пароль"; } }
static public void AutoRefresh(this ObjectContext ctx, RefreshMode refreshMode, IEnumerable collection) { var csInEF = ctx.Connection.ConnectionString; string csForEF; if (csInEF.StartsWith("name=")) { // old EF var csName = csInEF.Replace("name=", "").Trim(); csForEF = System.Configuration.ConfigurationManager.ConnectionStrings[csName].ConnectionString; } else { csForEF = csInEF; } var newConnectionString = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(csForEF).ProviderConnectionString; if (!connectionStrings.Contains(newConnectionString)) { connectionStrings.Add(newConnectionString); SqlDependency.Start(newConnectionString); } ServiceBrokerUtility.ctx = ctx; ServiceBrokerUtility.refreshMode = refreshMode; AutoRefresh(collection); }
public IEnumerable <DeckTB> GetDecks(int id) { var filteredList = new List <DeckTB>(); if (_connString.ToLower().StartsWith("metadata=")) { System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(_connString); _connString = efBuilder.ProviderConnectionString; } using (var con = new SqlConnection(_connString)) { var cmd = new SqlCommand("GetDecks", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@playerId", id); con.Open(); SqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { var deck = new DeckTB(); deck.DeckId = Convert.ToInt32(rdr["DeckId"]); deck.PlayerId = Convert.ToInt32(rdr["PlayerId"]); deck.DeckName = rdr["DeckName"].ToString(); filteredList.Add(deck); } } return(filteredList); }
public ActionResult firstanafora(string X, string date_start, string date_end, display_anafores da) { var constring = System.Configuration.ConfigurationManager.ConnectionStrings["pubsEntities"].ConnectionString; if (constring.ToLower().StartsWith("metadata=")) { System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(constring); constring = efBuilder.ProviderConnectionString; } string query = "SELECT"; SqlConnection con = new SqlConnection(constring); if (X != "") { query = query + " TOP(" + X + ")"; } query = query + " sales.title_id,authors.au_fname,authors.address,authors.au_lname,authors.city,authors.phone,authors.zip,authors.state,SUM(sales.qty) as qty,sales.ord_date " + "FROM[pubs].[dbo].sales INNER JOIN titleauthor on titleauthor.title_id = sales.title_id " + "INNER JOIN authors on authors.au_id = titleauthor.au_id "; if (date_start != "" && date_end != "") { query = query + "WHERE sales.ord_date>='" + date_start + "' AND sales.ord_date<='" + date_end + "'"; } else if (date_start != "") { query = query + "WHERE sales.ord_date>='" + date_start + "'"; } else if (date_end != "") { query = query + "WHERE sales.ord_date<='" + date_end + "'"; } query = query + " GROUP BY sales.title_id,authors.au_fname,authors.address,authors.au_lname,authors.city,authors.phone,authors.zip,authors.state,ord_date ORDER BY qty DESC"; SqlCommand sqlcomm = new SqlCommand(query); sqlcomm.Connection = con; con.Open(); SqlDataReader sdr = sqlcomm.ExecuteReader(); List <display_anafores> objmodel = new List <display_anafores>(); if (sdr.HasRows) { while (sdr.Read()) { var details = new display_anafores(); details.auth_name = sdr["au_fname"].ToString(); details.auth_lastname = sdr["au_lname"].ToString(); details.phone = sdr["phone"].ToString(); details.address = sdr["address"].ToString(); details.city = sdr["city"].ToString(); details.state = sdr["state"].ToString(); details.zip = sdr["zip"].ToString(); objmodel.Add(details); } da.info = objmodel; con.Close(); } return(View("firstanafora", da)); }
protected override DbCtxNorthwindEntities CreateDbContext() { // TODO: Allow using connection string from var builder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder("metadata=res://*/Northwind.NorthwindDbCtx.csdl|res://*/Northwind.NorthwindDbCtx.ssdl|res://*/Northwind.NorthwindDbCtx.msl;provider=System.Data.SqlClient;"); builder.ProviderConnectionString = ConfigurationManager.ConnectionStrings["Northwind"].ConnectionString; return(new DbCtxNorthwindEntities(builder.ConnectionString)); }
protected void btnConfirm_Click(object sender, EventArgs e) { UserStore <IdentityUser> userStore = new UserStore <IdentityUser>(); //https://stackoverflow.com/questions/20183777/keyword-not-supported-metadata string connectionStringEF = System.Configuration.ConfigurationManager .ConnectionStrings["VegetableDBEntities"].ConnectionString; var efBuilder = new System.Data.Entity.Core.EntityClient .EntityConnectionStringBuilder(connectionStringEF); string connectionStringOK = efBuilder.ProviderConnectionString; userStore.Context.Database.Connection.ConnectionString = connectionStringOK; var manager = new UserManager <IdentityUser>(userStore); var user = new IdentityUser(); user.UserName = txtLogin.Text; if (txtPasword.Text == txtConfirmPassword.Text) { try { var result = manager.Create(user, txtPasword.Text); if (result.Succeeded) { var userInfo = new UserInfo { FirstName = txtFirstName.Text, LastName = txtLastName.Text, Address = txtAddress.Text, Phone = txtPhone.Text, Guid = user.Id }; var userInfoModel = new UserInfoModel(); userInfoModel.InsertUserInfo(userInfo); var autentificationManager = HttpContext.Current.GetOwinContext().Authentication; var userIdentity = manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie); autentificationManager .SignIn(new Microsoft.Owin.Security.AuthenticationProperties(), userIdentity); Response.Redirect("~/Index.aspx"); } else { litStatus.Text = result.Errors.FirstOrDefault(); } } catch (Exception ex) { litStatus.Text = ex.ToString(); } } else { litStatus.Text = "Пароли не совпадают"; } }
internal static string getConnectionString() { string connectionString = ConfigurationManager.ConnectionStrings["bejournalEntities"].ConnectionString; if (connectionString.ToLower().StartsWith("metadata=")) { System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(connectionString); connectionString = efBuilder.ProviderConnectionString; } return(connectionString); }
private static SqlConnection SqlConnection() { string connectionString = ConfigurationManager.ConnectionStrings["AccountDbEntities"].ConnectionString; System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(connectionString); connectionString = efBuilder.ProviderConnectionString; SqlConnection connection = new SqlConnection(connectionString); return(connection); }
}//end /// <summary> /// Sets the connection string depending on the information that is trying to be accessed. If the ADO.Net entity does not exist, throws an error. /// </summary> /// <param name="entity">The entity connection string to get</param> private static void GetConnectionString(string entity) { ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings[entity]; if (settings == null || string.IsNullOrEmpty(settings.ConnectionString)) { throw new Exception("no_connection_string"); } var efConnectionString = settings.ConnectionString; var builder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(efConnectionString); connStr = builder.ProviderConnectionString; }//end GetConnectionString
private static string GetSiteDBModelConnStr(string sqlConnStr) { var siteSqlConn = System.Configuration.ConfigurationManager.ConnectionStrings[sqlConnStr]; string conStrIntegratedSecurity = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder { Metadata = "res://*/DAL.SiteDBModel.csdl|res://*/DAL.SiteDBModel.ssdl|res://*/DAL.SiteDBModel.msl", Provider = siteSqlConn.ProviderName, ProviderConnectionString = siteSqlConn.ConnectionString }.ConnectionString; return conStrIntegratedSecurity; }
private static string GetSiteDBModelConnStr(string sqlConnStr) { var siteSqlConn = System.Configuration.ConfigurationManager.ConnectionStrings[sqlConnStr]; string conStrIntegratedSecurity = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder { Metadata = "res://*/DAL.SiteDBModel.csdl|res://*/DAL.SiteDBModel.ssdl|res://*/DAL.SiteDBModel.msl", Provider = siteSqlConn.ProviderName, ProviderConnectionString = siteSqlConn.ConnectionString }.ConnectionString; return(conStrIntegratedSecurity); }
/// <summary> /// 得到Entity的连接字符串 /// </summary> /// <param name="edmxFullName">Edmx的包括命名空间的全名称</param> /// <param name="server">服务器地址或名称</param> /// <param name="dadaBase">数据库</param> /// <param name="usr">用户</param> /// <param name="pswd">密码</param> /// <param name="appName">程序名称</param> /// <returns>Entity连接字符串</returns> private static string GetEntityConnectionString(string edmxFullName, string path) { System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder entityConnectionStringBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(); entityConnectionStringBuilder.Metadata = "res://*/" + edmxFullName + ".csdl|res://*/" + edmxFullName + ".ssdl|res://*/" + edmxFullName + ".msl"; entityConnectionStringBuilder.Provider = "System.Data.SQLite.EF6"; System.Data.SQLite.SQLiteConnectionStringBuilder sqlConnectionStringBuilder = new System.Data.SQLite.SQLiteConnectionStringBuilder(); sqlConnectionStringBuilder.DataSource = path; entityConnectionStringBuilder.ProviderConnectionString = sqlConnectionStringBuilder.ToString(); return(entityConnectionStringBuilder.ConnectionString); }
public static string entityConnectionString() { string connectionString = dbConnectString; System.Data.SqlClient.SqlConnectionStringBuilder scsb = new System.Data.SqlClient.SqlConnectionStringBuilder(connectionString); System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder ecb = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(); ecb.Metadata = "res://*/Models.ThesaurusModel.csdl|res://*/Models.ThesaurusModel.ssdl|res://*/Models.ThesaurusModel.msl"; ecb.Provider = "System.Data.SqlClient"; ecb.ProviderConnectionString = scsb.ConnectionString; return(ecb.ConnectionString); }
static public void SetupTestDB() { if (IsDbSet) { return; } IsDbSet = true; string cs = CardValidationServiceDB.DefaultConnectionString; var ecb = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(cs); var cb = new System.Data.SqlClient.SqlConnectionStringBuilder(ecb.ProviderConnectionString) { AttachDBFilename = Path.GetFullPath("CardValidationServiceDB.mdf"), }; ecb.ProviderConnectionString = cb.ToString(); CardValidationServiceDB.DefaultConnectionString = ecb.ConnectionString; using (var db = new CardValidationServiceDB()) { try { if (db.Database.Exists()) { db.Database.Delete(); } } catch { } db.Database.Create(); db.Database.ExecuteSqlCommand(File.ReadAllText(@"..\..\..\CardValidationService.DB\Functions\GetCardType.sql")); string fuzzDBLibPath = Path.GetFullPath(@"..\CardValidationService.DB\CardValidationServiceDB.dll"); db.Database.ExecuteSqlCommand($"CREATE ASSEMBLY [CardValidationServiceDB] FROM '{fuzzDBLibPath}'"); db.Database.ExecuteSqlCommand(@" CREATE FUNCTION [dbo].[IsPrimeNumber](@number INT) RETURNS BIT EXTERNAL NAME [CardValidationServiceDB].[UserDefinedFunctions].[IsPrimeNumber]"); db.Database.ExecuteSqlCommand(File.ReadAllText(@"..\..\..\CardValidationService.DB\Functions\IsExpiryDateValid.sql")); db.Database.ExecuteSqlCommand(File.ReadAllText(@"..\..\..\CardValidationService.DB\Procedures\ValidateCard.sql")); db.Card.AddRange( from fi in typeof(CardTestInfo).GetFields(BindingFlags.Public | BindingFlags.Static) where fi.FieldType == typeof(CardTestInfo) let ci = (CardTestInfo)fi.GetValue(typeof(CardTestInfo)) where ci.ExpiryDate != null select new Card { Number = ci.Number, ExpiryDate = ci.ExpiryDate.Value }); db.SaveChanges(); } }
private void setConn() { connectionstring = System.Configuration.ConfigurationManager.ConnectionStrings["incposdbEntities"].ConnectionString; if (connectionstring.ToLower().StartsWith("metadata=")) { System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(connectionstring); connectionstring = efBuilder.ProviderConnectionString; } var connectionBuilder = new System.Data.SqlClient.SqlConnectionStringBuilder(connectionstring); databaseName = connectionBuilder.InitialCatalog; connection = new SqlConnection(connectionstring); }
public static string change_db(string data_source = "localhost:1521/testowa", string user = "******", string password = "******") { const string providerName = "Oracle.ManagedDataAccess.Client"; string metaData = "res://*/model_Samochod.csdl|res://*/model_Samochod.ssdl|res://*/model_Samochod.msl"; Oracle.ManagedDataAccess.Client.OracleConnectionStringBuilder oracleBuilder = new Oracle.ManagedDataAccess.Client.OracleConnectionStringBuilder(); oracleBuilder.DataSource = data_source; oracleBuilder.UserID = user; oracleBuilder.Password = password; System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(); efBuilder.Metadata = metaData; efBuilder.Provider = providerName; efBuilder.ProviderConnectionString = oracleBuilder.ConnectionString; return(efBuilder.ConnectionString); }
public static string getConnectionStringUDL() { System.Data.SqlClient.SqlConnectionStringBuilder sqlString = new System.Data.SqlClient.SqlConnectionStringBuilder() { ConnectionString = objDataLayer.ConnectionString, IntegratedSecurity = true, MultipleActiveResultSets = true }; //Build an Entity Framework connection string System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder entityString = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder() { Provider = (objDataLayer.ProviderName == "SqlClient" ? "System.Data.SqlClient" : objDataLayer.ProviderName), Metadata = "res://*/GruposEtareosModel.csdl|res://*/GruposEtareosModel.ssdl|res://*/GruposEtareosModel.msl", ProviderConnectionString = sqlString.ToString() }; return(entityString.ConnectionString); }
public static string CreateConnStr(string dataSource, string instanceName, string userName, string password) { string connectionString = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder { Metadata = "res://*/EbaModel.csdl|res://*/EbaModel.ssdl|res://*/EbaModel.msl", Provider = "System.Data.SqlClient", ProviderConnectionString = new System.Data.SqlClient.SqlConnectionStringBuilder { InitialCatalog = instanceName, DataSource = dataSource, IntegratedSecurity = false, UserID = userName, Password = password, }.ConnectionString }.ConnectionString; return(connectionString); }
public static string ConnectionStringBuilder(string DalPathName, string connectionString) { if (string.IsNullOrEmpty(connectionString)) { connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["StockContext"].ConnectionString; } HttpHelper.WriteLogError(connectionString); var ecsbuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(); ecsbuilder.Provider = "System.Data.SqlClient"; //ecsbuilder.Provider = "System.Data.EntityClient"; ecsbuilder.ProviderConnectionString = connectionString; // Becare full the folder structure: General.Data or Data only in project folder tree. ecsbuilder.Metadata = @"res://*/" + DalPathName + ".csdl|res://*/" + DalPathName + ".ssdl|res://*/" + DalPathName + ".msl"; string cs = ecsbuilder.ToString(); HttpHelper.WriteLogError("Built connectionstring: " + cs); return(cs); }
public IEnumerable <CustomCardTB> GetCardsInDeck(int deckId /*, int cardId*/) { var filteredList = new List <CustomCardTB>(); if (_connString.ToLower().StartsWith("metadata=")) { System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(_connString); _connString = efBuilder.ProviderConnectionString; } using (var con = new SqlConnection(_connString)) { var cmd = new SqlCommand("GetCardsInDeck", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@deckId", deckId); //cmd.Parameters.AddWithValue("@cardId", cardId); con.Open(); SqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { var customCard = new CustomCardTB(); customCard.Id = Convert.ToInt32(rdr["Id"]); customCard.Name = rdr["Name"].ToString(); customCard.Description = rdr["Description"].ToString(); customCard.Power = rdr["Power"].ToString(); customCard.Tough = rdr["Tough"].ToString(); customCard.Image = rdr["Image"].ToString(); customCard.PlayerId = Convert.ToInt32(rdr["PlayerId"]); filteredList.Add(customCard); } } return(filteredList); }
public static string Connect() { //string conString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString; string conString = string.Empty; string DataSource = ConfigurationManager.AppSettings["DataSource"]; string Database = ConfigurationManager.AppSettings["Database"]; string UID = ConfigurationManager.AppSettings["UID"]; string Password = ConfigurationManager.AppSettings["Password"]; conString = "Server=" + DataSource + "; Database=" + Database + "; UID=" + UID + "; PWD=" + Password + ";"; if (conString.ToLower().StartsWith("metadata=")) { System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(conString); conString = efBuilder.ProviderConnectionString; } SqlConnectionStringBuilder cns = new SqlConnectionStringBuilder(conString); string dataSource = cns.DataSource; SqlConnectionStringBuilder sqlString = new SqlConnectionStringBuilder() { DataSource = cns.DataSource, // Server name InitialCatalog = cns.InitialCatalog, //Database UserID = cns.UserID, //Username Password = cns.Password, //Password, //MultipleActiveResultSets = true, //ApplicationName = "EntityFramework", }; return(sqlString.ConnectionString); //Build an Entity Framework connection string //EntityConnectionStringBuilder entityString = new EntityConnectionStringBuilder() //{ // //Provider = "System.Data.SqlClient", // //Metadata = @"..\..\bin\Debug\EntityModelDemo.csdl|..\..\bin\Debug\EntityModelDemo.ssdl|..\..\bin\Debug\EntityModelDemo.msl;", // //ProviderConnectionString = sqlString.ToString() //}; //return entityString.ConnectionString; }
public ActionResult DeleteConfirmed(string id) { var constring = System.Configuration.ConfigurationManager.ConnectionStrings["pubsEntities"].ConnectionString; if (constring.ToLower().StartsWith("metadata=")) { System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(constring); constring = efBuilder.ProviderConnectionString; } var con = new SqlConnection(constring); con.Open(); string query = "SELECT COUNT(*) FROM titleauthor"; var cmd = new SqlCommand(query, con); int rowsAmount = (int)cmd.ExecuteScalar(); titleauthor titleauthor; for (int i = 0; i < rowsAmount; i++) { titleauthor = db.titleauthor.FirstOrDefault(x => x.au_id == id); if (titleauthor == null) { } else { db.titleauthor.Remove(titleauthor); db.SaveChanges(); } } authors authors = db.authors.Find(id); db.authors.Remove(authors); db.SaveChanges(); return(RedirectToAction("Index")); }
/// <summary /> public static void Update <T>(this IQueryable <T> query, Expression <Func <T, T> > obj, QueryOptimizer optimizer, string connectionString) where T : Gravitybox.GeoLocation.EFDAL.IBusinessObject, new() { if (optimizer == null) { optimizer = new QueryOptimizer(); } if (query == null) { throw new Exception("Query must be set"); } //There is nothing to do if (query.ToString().Replace("\r", string.Empty).Split(new char[] { '\n' }).LastOrDefault().Trim() == "WHERE 1 = 0") { return; } var instanceKey = Guid.Empty; System.Data.Entity.Core.Objects.ObjectContext objectContext = null; try { var propContext = query.Provider.GetType().GetProperty("InternalContext"); if (propContext != null) { var context = propContext.GetValue(query.Provider); if (context != null) { var oc = context.GetType().GetProperty("ObjectContext").GetValue(context) as System.Data.Entity.Core.Objects.ObjectContext; objectContext = oc as System.Data.Entity.Core.Objects.ObjectContext; instanceKey = ((IContext)context.GetType().GetProperty("Owner").GetValue(context)).InstanceKey; if (string.IsNullOrEmpty(connectionString)) { var propCs = context.GetType().GetProperty("OriginalConnectionString"); if (propCs != null) { connectionString = (string)propCs.GetValue(context); } } } } if (instanceKey == Guid.Empty) { var context2 = query.Provider.GetType().GetField("_context", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); if (context2 != null) { var context = context2.GetValue(query.Provider); objectContext = context as System.Data.Entity.Core.Objects.ObjectContext; var qq = objectContext.InterceptionContext.DbContexts.First() as Gravitybox.GeoLocation.EFDAL.IGeoLocationEntities; instanceKey = qq.InstanceKey; if (string.IsNullOrEmpty(connectionString)) { connectionString = Util.StripEFCS2Normal(objectContext.Connection.ConnectionString); } } } if (instanceKey == Guid.Empty) { throw new Exception("Unknown context"); } if (string.IsNullOrEmpty(connectionString)) { var propContext2 = query.GetType().GetProperty("Context"); if (propContext2 != null) { var context = propContext2.GetValue(query) as System.Data.Entity.Core.Objects.ObjectContext; if (context != null) { var builder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(context.Connection.ConnectionString); if (!string.IsNullOrWhiteSpace(builder.ProviderConnectionString)) { objectContext = context; connectionString = builder.ProviderConnectionString; } } } } } catch { } System.Data.Entity.Core.Objects.ObjectParameterCollection existingParams = null; { var objectQuery = query as System.Data.Entity.Core.Objects.ObjectQuery <T>; if (objectQuery == null) { var internalQueryField = query.GetType().GetProperty("InternalQuery", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(query); if (internalQueryField != null) { objectQuery = internalQueryField.GetType().GetProperty("ObjectQuery").GetValue(internalQueryField) as System.Data.Entity.Core.Objects.ObjectQuery <T>; } } if (objectQuery != null) { var ss2 = objectQuery.ToTraceString(); //DO NOT REMOVE! must call this to init params existingParams = objectQuery.GetType().GetProperty("Parameters").GetValue(objectQuery) as System.Data.Entity.Core.Objects.ObjectParameterCollection; } } var startTime = DateTime.Now; var changedList = new Dictionary <string, object>(); #region Parse Tree var propBody = obj.GetType().GetProperty("Body"); if (propBody != null) { var body = propBody.GetValue(obj); if (body != null) { var propBindings = body.GetType().GetProperty("Bindings"); if (propBindings != null) { var members = (IEnumerable <System.Linq.Expressions.MemberBinding>)propBindings.GetValue(body); foreach (System.Linq.Expressions.MemberAssignment item in members) { var name = item.Member.Name; object value = null; if (item.Expression.Type == typeof(int?)) { value = CompileValue <int?>(item.Expression); } else if (item.Expression.Type == typeof(int)) { value = CompileValue <int>(item.Expression); } else if (item.Expression.Type == typeof(string)) { value = CompileValue <string>(item.Expression); } else if (item.Expression.Type == typeof(bool?)) { value = CompileValue <bool?>(item.Expression); } else if (item.Expression.Type == typeof(bool)) { value = CompileValue <bool>(item.Expression); } else if (item.Expression.Type == typeof(byte?)) { value = CompileValue <byte?>(item.Expression); } else if (item.Expression.Type == typeof(byte)) { value = CompileValue <byte>(item.Expression); } else if (item.Expression.Type == typeof(char?)) { value = CompileValue <char?>(item.Expression); } else if (item.Expression.Type == typeof(char)) { value = CompileValue <char>(item.Expression); } else if (item.Expression.Type == typeof(decimal?)) { value = CompileValue <decimal?>(item.Expression); } else if (item.Expression.Type == typeof(decimal)) { value = CompileValue <decimal>(item.Expression); } else if (item.Expression.Type == typeof(double?)) { value = CompileValue <double?>(item.Expression); } else if (item.Expression.Type == typeof(double)) { value = CompileValue <double>(item.Expression); } else if (item.Expression.Type == typeof(float?)) { value = CompileValue <float?>(item.Expression); } else if (item.Expression.Type == typeof(float)) { value = CompileValue <float>(item.Expression); } else if (item.Expression.Type == typeof(long?)) { value = CompileValue <long?>(item.Expression); } else if (item.Expression.Type == typeof(long)) { value = CompileValue <long>(item.Expression); } else if (item.Expression.Type == typeof(short?)) { value = CompileValue <short?>(item.Expression); } else if (item.Expression.Type == typeof(short)) { value = CompileValue <short>(item.Expression); } else if (item.Expression.Type == typeof(DateTime?)) { value = CompileValue <DateTime?>(item.Expression); } else if (item.Expression.Type == typeof(DateTime)) { value = CompileValue <DateTime>(item.Expression); } else if (item.Expression.Type == typeof(Guid?)) { value = CompileValue <Guid?>(item.Expression); } else if (item.Expression.Type == typeof(Guid)) { value = CompileValue <Guid>(item.Expression); } else { throw new Exception("Data type is not handled '" + item.Expression.Type.Name + "'"); } changedList.Add(name, value); } } else { throw new Exception("Update statement must be in format 'm => new Entity { Field = 0 }'"); } } } #endregion //Create a mapping for inheritance var mapping = new List <UpdateSqlMapItem>(); IReadOnlyBusinessObject theObj = new T(); do { var md = theObj.GetMetaData(); mapping.Add(new UpdateSqlMapItem { TableName = md.GetTableName(), FieldList = md.GetFields(), Schema = md.Schema(), Metadata = md }); var newT = md.InheritsFrom(); if (newT == null) { theObj = default(T); } else { theObj = (IReadOnlyBusinessObject)Activator.CreateInstance(newT, false); } } while (theObj != null); var paramIndex = 0; var parameters = new List <System.Data.SqlClient.SqlParameter>(); foreach (var key in changedList.Keys) { var map = mapping.First(x => x.FieldList.Any(z => z == key)); var fieldSql = map.SqlList; var value = changedList[key]; if (value == null) { fieldSql.Add("[" + map.Metadata.GetDatabaseFieldName(key) + "] = NULL"); } else if (value is string) { fieldSql.Add("[" + map.Metadata.GetDatabaseFieldName(key) + "] = @param" + paramIndex); parameters.Add(new System.Data.SqlClient.SqlParameter { ParameterName = "@param" + paramIndex, DbType = System.Data.DbType.String, Value = changedList[key] }); } else if (value is DateTime) { fieldSql.Add("[" + map.Metadata.GetDatabaseFieldName(key) + "] = @param" + paramIndex); parameters.Add(new System.Data.SqlClient.SqlParameter { ParameterName = "@param" + paramIndex, DbType = System.Data.DbType.DateTime, Value = changedList[key] }); } else { fieldSql.Add("[" + map.Metadata.GetDatabaseFieldName(key) + "] = @param" + paramIndex); parameters.Add(new System.Data.SqlClient.SqlParameter { ParameterName = "@param" + paramIndex, Value = changedList[key] }); } paramIndex++; } var sb = new System.Text.StringBuilder(); #region Per table code if (typeof(T) == typeof(Gravitybox.GeoLocation.EFDAL.Entity.CanadaPostalCode)) { sb.AppendLine("set rowcount " + optimizer.ChunkSize + ";"); foreach (var item in mapping.Where(x => x.SqlList.Any()).ToList()) { sb.AppendLine("UPDATE [X] SET"); sb.AppendLine(string.Join(", ", item.SqlList)); sb.AppendLine("FROM [" + item.Schema + "].[" + item.TableName + "] AS [X] INNER JOIN ("); sb.AppendLine(((IQueryable <Gravitybox.GeoLocation.EFDAL.Entity.CanadaPostalCode>)query).Select(x => new { x.RowId }).ToString()); sb.AppendLine(") AS [Extent2]"); sb.AppendLine("on [X].[RowId] = [Extent2].[RowId]"); sb.AppendLine("select @@ROWCOUNT"); } } else if (typeof(T) == typeof(Gravitybox.GeoLocation.EFDAL.Entity.City)) { sb.AppendLine("set rowcount " + optimizer.ChunkSize + ";"); foreach (var item in mapping.Where(x => x.SqlList.Any()).ToList()) { sb.AppendLine("UPDATE [X] SET"); sb.AppendLine(string.Join(", ", item.SqlList)); sb.AppendLine("FROM [" + item.Schema + "].[" + item.TableName + "] AS [X] INNER JOIN ("); sb.AppendLine(((IQueryable <Gravitybox.GeoLocation.EFDAL.Entity.City>)query).Select(x => new { x.CityId }).ToString()); sb.AppendLine(") AS [Extent2]"); sb.AppendLine("on [X].[CityId] = [Extent2].[CityId]"); sb.AppendLine("select @@ROWCOUNT"); } } else if (typeof(T) == typeof(Gravitybox.GeoLocation.EFDAL.Entity.State)) { sb.AppendLine("set rowcount " + optimizer.ChunkSize + ";"); foreach (var item in mapping.Where(x => x.SqlList.Any()).ToList()) { sb.AppendLine("UPDATE [X] SET"); sb.AppendLine(string.Join(", ", item.SqlList)); sb.AppendLine("FROM [" + item.Schema + "].[" + item.TableName + "] AS [X] INNER JOIN ("); sb.AppendLine(((IQueryable <Gravitybox.GeoLocation.EFDAL.Entity.State>)query).Select(x => new { x.StateId }).ToString()); sb.AppendLine(") AS [Extent2]"); sb.AppendLine("on [X].[StateId] = [Extent2].[StateId]"); sb.AppendLine("select @@ROWCOUNT"); } } else if (typeof(T) == typeof(Gravitybox.GeoLocation.EFDAL.Entity.Zip)) { sb.AppendLine("set rowcount " + optimizer.ChunkSize + ";"); foreach (var item in mapping.Where(x => x.SqlList.Any()).ToList()) { sb.AppendLine("UPDATE [X] SET"); sb.AppendLine(string.Join(", ", item.SqlList)); sb.AppendLine("FROM [" + item.Schema + "].[" + item.TableName + "] AS [X] INNER JOIN ("); sb.AppendLine(((IQueryable <Gravitybox.GeoLocation.EFDAL.Entity.Zip>)query).Select(x => new { x.ZipId }).ToString()); sb.AppendLine(") AS [Extent2]"); sb.AppendLine("on [X].[ZipId] = [Extent2].[ZipId]"); sb.AppendLine("select @@ROWCOUNT"); } } else { throw new Exception("Entity type not found"); } #endregion if (string.IsNullOrEmpty(connectionString)) { connectionString = GeoLocationEntities.GetConnectionString(); } var newParams = new List <System.Data.SqlClient.SqlParameter>(); if (existingParams != null) { foreach (var ep in existingParams) { newParams.Add(new System.Data.SqlClient.SqlParameter { ParameterName = ep.Name, Value = (ep.Value == null ? System.DBNull.Value : ep.Value) }); } } newParams.AddRange(parameters); QueryPreCache.AddUpdate(instanceKey, sb.ToString(), newParams, optimizer); }
public ActionResult DeleteConfirmed(string id) { var constring = System.Configuration.ConfigurationManager.ConnectionStrings["pubsEntities"].ConnectionString; if (constring.ToLower().StartsWith("metadata=")) { System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(constring); constring = efBuilder.ProviderConnectionString; } var con = new SqlConnection(constring); con.Open(); string query = "SELECT COUNT(*) FROM discounts"; var cmd = new SqlCommand(query, con); int rowsAmount = (int)cmd.ExecuteScalar(); discounts discounts; for (int i = 0; i < rowsAmount; i++) { discounts = db.discounts.FirstOrDefault(m => m.stor_id == id); if (discounts == null) { } else { db.discounts.Remove(discounts); db.SaveChanges(); } } query = "SELECT COUNT(*) FROM sales"; cmd = new SqlCommand(query, con); rowsAmount = (int)cmd.ExecuteScalar(); sales sales; for (int i = 0; i < rowsAmount; i++) { sales = db.sales.FirstOrDefault(m => m.stor_id == id); if (sales == null) { } else { db.sales.Remove(sales); db.SaveChanges(); } } query = "SELECT COUNT(*) FROM titles"; cmd = new SqlCommand(query, con); rowsAmount = (int)cmd.ExecuteScalar(); titles titles; for (int i = 0; i < rowsAmount; i++) { titles = db.titles.FirstOrDefault(m => m.pub_id == id); if (titles == null) { } else { db.titles.Remove(titles); db.SaveChanges(); } } stores stores = db.stores.Find(id); db.stores.Remove(stores); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult secondAnafora(string a, string b, string date_start, string date_end, display_anafores da) { var constring = System.Configuration.ConfigurationManager.ConnectionStrings["pubsEntities"].ConnectionString; if (constring.ToLower().StartsWith("metadata=")) { System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(constring); constring = efBuilder.ProviderConnectionString; } string query = "SELECT sales.ord_num,sales.stor_id,sales.ord_date,sales.title_id,titles.title,stores.stor_name " + "FROM [pubs].[dbo].sales " + "INNER JOIN stores on stores.stor_id = sales.stor_id " + "INNER JOIN titles on titles.title_id = sales.title_id "; SqlConnection con = new SqlConnection(constring); if (a != "" || b != "" || date_start != "" || date_end != "") { Boolean flag = false; query += "WHERE "; if (date_start != "" && date_end != "") { query = query + "(sales.ord_date>='" + date_start + "' AND sales.ord_date<='" + date_end + "')"; flag = true; } else if (date_start != "") { flag = true; query = query + "(sales.ord_date>='" + date_start + "')"; } else if (date_end != "") { flag = true; query = query + "(sales.ord_date<='" + date_end + "')"; } if (a != "" && b != "") { if (flag) { query = query + " AND "; } query = query + "(stores.stor_name LIKE '[" + a + "-" + b + "]%')"; } else if (a != "") { if (flag) { query = query + " AND "; } query = query + "(stores.stor_name LIKE '[" + a + "-Z]%')"; } else if (b != "") { if (flag) { query = query + " AND "; } query = query + "(stores.stor_name LIKE '[A-" + b + "]%')"; } } query = query + " GROUP BY sales.ord_num,sales.stor_id,sales.ord_date,sales.title_id,titles.title,stores.stor_name ORDER BY sales.ord_num DESC;"; SqlCommand sqlcomm = new SqlCommand(query); sqlcomm.Connection = con; con.Open(); SqlDataReader sdr = sqlcomm.ExecuteReader(); List <display_anafores> objmodel = new List <display_anafores>(); if (sdr.HasRows) { while (sdr.Read()) { var details = new display_anafores(); details.order_id = sdr["ord_num"].ToString(); details.title_name = sdr["title"].ToString(); details.store_name = sdr["stor_name"].ToString(); objmodel.Add(details); } da.info = objmodel; con.Close(); } return(View("secondanafora", da)); }
public ActionResult QuartersUpdate(string Active, string Number) { try { if (Number.Length == 0) { throw (new Exception()); } bool act; if (Active.IsNullOrWhiteSpace()) { act = false; } else { act = true; } int Num = Int32.Parse(Number); string cs = System.Configuration.ConfigurationManager.ConnectionStrings["TrackTasksEntities"].ConnectionString; if (cs.ToLower().StartsWith("metadata=")) { System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(cs); cs = efBuilder.ProviderConnectionString; } SqlConnection con = new SqlConnection(cs); SqlCommand cmd = new SqlCommand( "UPDATE Quarters SET Active = @Active WHERE Id=@Num", con); List<SqlParameter> prm = new List<SqlParameter>() { new SqlParameter("@Num", SqlDbType.Int) {Value = Num}, new SqlParameter("@Active", SqlDbType.Bit) {Value = act}, }; cmd.Parameters.AddRange(prm.ToArray()); con.Open(); cmd.ExecuteNonQuery(); con.Close(); } catch (Exception e) { Response.Write("<script>alert('Failed to submit. Check that your data is the appropriate length and format.');</script>"); } var quarters = db.Quarters; SelectList quarts = new SelectList(quarters, "Id", "Quarter_Desc"); ViewBag.Quarts = quarts; SelectList start = new SelectList(quarters, "Id", "StartDate"); ViewBag.StartDate = start; SelectList end = new SelectList(quarters, "Id", "EndDate"); ViewBag.EndDate = end; SelectList active = new SelectList(quarters, "Id", "Active"); ViewBag.Active = active; return PartialView("ReturnQuarters"); }
public ActionResult QuartersInsert(String QuarterDesc, DateTime StartDate, DateTime EndDate) { try { if (QuarterDesc.Length == 0 || StartDate.ToString().Length == 0 || EndDate.ToString().Length == 0) { throw (new Exception()); } //Setting the input strings to be the format needed by SQL string sqlStartDate = StartDate.ToString("yyyy-MM-dd HH:mm:ss.fff"); string sqlEndDate = EndDate.ToString("yyyy-MM-dd HH:mm:ss.fff"); string cs = System.Configuration.ConfigurationManager.ConnectionStrings["TrackTasksEntities"].ConnectionString; if (cs.ToLower().StartsWith("metadata=")) { System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(cs); cs = efBuilder.ProviderConnectionString; } SqlConnection con = new SqlConnection(cs); SqlCommand cmd = new SqlCommand( "INSERT INTO Quarters(StartDate, EndDate, Quarter_Desc, Active) VALUES (@StartDate, @EndDate, @Quarter_Desc, @Active)", con); List<SqlParameter> prm = new List<SqlParameter>() { new SqlParameter("@StartDate", SqlDbType.DateTime) {Value = sqlStartDate}, new SqlParameter("@EndDate", SqlDbType.DateTime) {Value = sqlEndDate}, new SqlParameter("@Quarter_Desc", SqlDbType.NVarChar) {Value = QuarterDesc}, new SqlParameter("@Active", SqlDbType.Bit) {Value = true}, }; cmd.Parameters.AddRange(prm.ToArray()); con.Open(); cmd.ExecuteNonQuery(); con.Close(); } catch (Exception e) { Response.Write("<script>alert('Failed to submit. Check that your data is the appropriate length and format.');</script>"); } var quarters = db.Quarters; SelectList quarts = new SelectList(quarters, "Id", "Quarter_Desc"); ViewBag.Quarts = quarts; SelectList start = new SelectList(quarters, "Id", "StartDate"); ViewBag.StartDate = start; SelectList end = new SelectList(quarters, "Id", "EndDate"); ViewBag.EndDate = end; SelectList active = new SelectList(quarters, "Id", "Active"); ViewBag.Active = active; return PartialView("ReturnQuarters"); }
public ActionResult DepartmentsUpdate(string Active, string Number) { try { //Checks if the Number variable is variable to make sure they selected something from the list if (Number.Length == 0) { throw (new Exception()); } //Since checkboxes submit nothing when uncheckd, check if the variable is empty to set to false bool act; if (Active.IsNullOrWhiteSpace()) { act = false; } else { act = true; } int Num = Int32.Parse(Number); //Grabbing the connection string for the database string cs = System.Configuration.ConfigurationManager.ConnectionStrings["TrackTasksEntities"].ConnectionString; if (cs.ToLower().StartsWith("metadata=")) { System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(cs); cs = efBuilder.ProviderConnectionString; } SqlConnection con = new SqlConnection(cs); SqlCommand cmd = new SqlCommand( "UPDATE Departments SET Active = @Active WHERE Id=@Num", con); List<SqlParameter> prm = new List<SqlParameter>() { new SqlParameter("@Num", SqlDbType.Int) {Value = Num}, new SqlParameter("@Active", SqlDbType.Bit) {Value = act}, }; cmd.Parameters.AddRange(prm.ToArray()); con.Open(); cmd.ExecuteNonQuery(); con.Close(); } //This will catch any errors relating to the SQL operation catch (Exception e) { Response.Write("<script>alert('Failed to submit. Check that your data is the appropriate length and format.');</script>"); } //Resetting the Departments view //Needs to go the ReturnDept to automatically open the departments tab after submission var departments = db.Departments; SelectList depts = new SelectList(departments, "Id", "Department_Name"); ViewBag.Depts = depts; SelectList code = new SelectList(departments, "Id", "Code"); ViewBag.Code = code; SelectList active = new SelectList(departments, "Id", "Active"); ViewBag.Active = active; return View("ReturnDept"); }
public ActionResult GoalsInsert(String GoalName, String Pillar) { try { if (GoalName.Length == 0 || Pillar.Length == 0) { throw (new Exception()); } string cs = System.Configuration.ConfigurationManager.ConnectionStrings["TrackTasksEntities"].ConnectionString; if (cs.ToLower().StartsWith("metadata=")) { System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(cs); cs = efBuilder.ProviderConnectionString; } SqlConnection con = new SqlConnection(cs); SqlCommand cmd = new SqlCommand( "INSERT INTO StrategicGoal(Goals, StrategicPillarId, Active) VALUES (@Goals, @StrategicPillarId, @Active)", con); List<SqlParameter> prm = new List<SqlParameter>() { new SqlParameter("@Goals", SqlDbType.NVarChar) {Value = GoalName}, new SqlParameter("@StrategicPillarId", SqlDbType.NVarChar) {Value = Pillar}, new SqlParameter("@Active", SqlDbType.Bit) {Value = true}, }; cmd.Parameters.AddRange(prm.ToArray()); con.Open(); cmd.ExecuteNonQuery(); con.Close(); } catch (Exception e) { Response.Write("<script>alert('Failed to submit. Check that your data is the appropriate length and format.');</script>"); } var stratgoals = db.StrategicGoals; SelectList goals = new SelectList(stratgoals, "Id", "Goals"); ViewBag.Goals = goals; SelectList active = new SelectList(stratgoals, "Id", "Active"); ViewBag.Active = active; var stratpillars = db.StrategicPillars; SelectList pillars = new SelectList(stratpillars, "Id", "StrategicPillar1"); ViewBag.Pillars = pillars; var stratpillarsId = db.StrategicGoals; SelectList pillarsid = new SelectList(stratpillarsId, "Id", "StrategicPillarId"); ViewBag.PillarsId = pillarsid; return PartialView("ReturnGoals"); }
/// <summary> /// Delete all records that match a where condition /// </summary> public static void Delete <T>(this IQueryable <T> query, QueryOptimizer optimizer, string connectionString) where T : Gravitybox.GeoLocation.EFDAL.IBusinessObject, new() { if (optimizer == null) { optimizer = new QueryOptimizer(); } if (query == null) { throw new Exception("Query must be set"); } //There is nothing to do if (query.ToString().Replace("\r", string.Empty).Split(new char[] { '\n' }).LastOrDefault().Trim() == "WHERE 1 = 0") { return; } var instanceKey = Guid.Empty; System.Data.Entity.Core.Objects.ObjectContext objectContext = null; try { var propContext = query.Provider.GetType().GetProperty("InternalContext"); if (propContext != null) { var context = propContext.GetValue(query.Provider); if (context != null) { var oc = context.GetType().GetProperty("ObjectContext").GetValue(context) as System.Data.Entity.Core.Objects.ObjectContext; objectContext = oc as System.Data.Entity.Core.Objects.ObjectContext; instanceKey = ((IContext)context.GetType().GetProperty("Owner").GetValue(context)).InstanceKey; if (string.IsNullOrEmpty(connectionString)) { var propCs = context.GetType().GetProperty("OriginalConnectionString"); if (propCs != null) { connectionString = (string)propCs.GetValue(context); } } } } if (instanceKey == Guid.Empty) { var context2 = query.Provider.GetType().GetField("_context", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); if (context2 != null) { var context = context2.GetValue(query.Provider); objectContext = context as System.Data.Entity.Core.Objects.ObjectContext; var qq = objectContext.InterceptionContext.DbContexts.First() as Gravitybox.GeoLocation.EFDAL.IGeoLocationEntities; if (qq != null) { instanceKey = qq.InstanceKey; } if (string.IsNullOrEmpty(connectionString)) { connectionString = Util.StripEFCS2Normal(objectContext.Connection.ConnectionString); } } } if (instanceKey == Guid.Empty) { throw new Exception("Unknown context"); } if (string.IsNullOrEmpty(connectionString)) { var propContext2 = query.GetType().GetProperty("Context"); if (propContext2 != null) { var context = propContext2.GetValue(query) as System.Data.Entity.Core.Objects.ObjectContext; if (context != null) { var builder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(context.Connection.ConnectionString); if (!string.IsNullOrWhiteSpace(builder.ProviderConnectionString)) { objectContext = context; connectionString = builder.ProviderConnectionString; } } } } } catch { } System.Data.Entity.Core.Objects.ObjectParameterCollection existingParams = null; { var objectQuery = query as System.Data.Entity.Core.Objects.ObjectQuery <T>; if (objectQuery == null) { var internalQueryField = query.GetType().GetProperty("InternalQuery", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(query); if (internalQueryField != null) { objectQuery = internalQueryField.GetType().GetProperty("ObjectQuery").GetValue(internalQueryField) as System.Data.Entity.Core.Objects.ObjectQuery <T>; } } if (objectQuery != null) { var ss2 = objectQuery.ToTraceString(); //DO NOT REMOVE! must call this to init params existingParams = objectQuery.GetType().GetProperty("Parameters").GetValue(objectQuery) as System.Data.Entity.Core.Objects.ObjectParameterCollection; } } var sb = new System.Text.StringBuilder(); #region Per table code if (typeof(T) == typeof(Gravitybox.GeoLocation.EFDAL.Entity.CanadaPostalCode)) { sb.AppendLine("set rowcount " + optimizer.ChunkSize + ";"); sb.AppendLine("delete [X] from [dbo].[CanadaPostalCode] [X] inner join ("); sb.AppendLine(((IQueryable <Gravitybox.GeoLocation.EFDAL.Entity.CanadaPostalCode>)query).Select(x => new { x.RowId }).ToString()); sb.AppendLine(") AS [Extent2]"); sb.AppendLine("on [X].[RowId] = [Extent2].[RowId]"); sb.AppendLine("select @@ROWCOUNT"); } else if (typeof(T) == typeof(Gravitybox.GeoLocation.EFDAL.Entity.City)) { sb.AppendLine("set rowcount " + optimizer.ChunkSize + ";"); sb.AppendLine("delete [X] from [dbo].[City] [X] inner join ("); sb.AppendLine(((IQueryable <Gravitybox.GeoLocation.EFDAL.Entity.City>)query).Select(x => new { x.CityId }).ToString()); sb.AppendLine(") AS [Extent2]"); sb.AppendLine("on [X].[CityId] = [Extent2].[CityId]"); sb.AppendLine("select @@ROWCOUNT"); } else if (typeof(T) == typeof(Gravitybox.GeoLocation.EFDAL.Entity.State)) { sb.AppendLine("set rowcount " + optimizer.ChunkSize + ";"); sb.AppendLine("delete [X] from [dbo].[State] [X] inner join ("); sb.AppendLine(((IQueryable <Gravitybox.GeoLocation.EFDAL.Entity.State>)query).Select(x => new { x.StateId }).ToString()); sb.AppendLine(") AS [Extent2]"); sb.AppendLine("on [X].[StateId] = [Extent2].[StateId]"); sb.AppendLine("select @@ROWCOUNT"); } else if (typeof(T) == typeof(Gravitybox.GeoLocation.EFDAL.Entity.Zip)) { sb.AppendLine("set rowcount " + optimizer.ChunkSize + ";"); sb.AppendLine("delete [X] from [dbo].[Zip] [X] inner join ("); sb.AppendLine(((IQueryable <Gravitybox.GeoLocation.EFDAL.Entity.Zip>)query).Select(x => new { x.ZipId }).ToString()); sb.AppendLine(") AS [Extent2]"); sb.AppendLine("on [X].[ZipId] = [Extent2].[ZipId]"); sb.AppendLine("select @@ROWCOUNT"); } else { throw new Exception("Entity type not found"); } #endregion if (string.IsNullOrEmpty(connectionString)) { connectionString = GeoLocationEntities.GetConnectionString(); } var newParams = new List <System.Data.SqlClient.SqlParameter>(); if (existingParams != null) { foreach (var ep in existingParams) { newParams.Add(new System.Data.SqlClient.SqlParameter { ParameterName = ep.Name, Value = (ep.Value == null ? System.DBNull.Value : ep.Value) }); } } QueryPreCache.AddDelete(instanceKey, sb.ToString(), newParams, optimizer); }