public virtual void Add(T item) { var cmdbuilder = CreateCommandBuilder(); using (var insertcmd = cmdbuilder.GetInsertCommand(true)) { var dic = _memberResolver.ConvertToDictionary(item); foreach (var kvp in dic) { var t = kvp.Value.GetType(); if (!IsComplexType(t)) { var param = insertcmd.Parameters.Cast <DbParameter>() .First( p => p.ParameterName.ToLower() == kvp.Key.ToLower() || p.ParameterName.ToLower() == "@" + kvp.Key.ToLower()); param.Value = kvp.Value; if (t == typeof(string)) { param.Size = ((string)kvp.Value ?? "").Length; } } } insertcmd.Connection = _connection; if (insertcmd.Connection.State == ConnectionState.Closed) { insertcmd.Connection.Open(); } insertcmd.Prepare(); insertcmd.ExecuteNonQuery(); } }
public virtual void Add(T item) { Dictionary <string, object> dic = _memberResolver.ConvertToDictionary(item); DataRow row = _dataTable.NewRow(); foreach (var kvp in dic) { row[kvp.Key] = kvp.Value; } _dataTable.Rows.Add(row); if (AutoSave) { SaveChanges(); } }
public virtual void Add(T item) { var cmdbuilder = _providerFactory.CreateCommandBuilder(); var insertcmd = cmdbuilder.GetInsertCommand(true); var dic = _memberResolver.ConvertToDictionary(item); foreach (var kvp in dic) { var t = kvp.Value.GetType(); if (!IsComplexType(t)) { insertcmd.Parameters.Cast <DbParameter>() .First( p => p.ParameterName.ToLower() == kvp.Key.ToLower() || p.ParameterName.ToLower() == "@" + kvp.Key.ToLower()) .Value = kvp.Value; } } insertcmd.Connection = _connection; OpenIfClosed(); insertcmd.Prepare(); insertcmd.ExecuteNonQuery(); }
protected override FooModel GetItemById(long id) { using (var conn = NewConnection()) { var cmdtext = "SELECT * FROM FooModel WHERE ID = @ID"; var cmd = new SqlCommand(cmdtext, conn); var dr = cmd.ExecuteReader(); var hydrator = new EntityMemberResolver <FooModel>(); dr.Read(); var item = new FooModel(); hydrator.HydrateFromDictionary(item, hydrator.ConvertToDictionary(dr)); return(item); } }
public DataTableDataStore() { _memberResolver = new EntityMemberResolver <T>(); _dataTable = new DataTable(typeof(T).Name); _dataTable.BeginInit(); Dictionary <string, object> props = _memberResolver.ConvertToDictionary(Activator.CreateInstance <T>()); foreach (var prop in props) { var column = new DataColumn(prop.Key, _memberResolver.PropertyType(prop.Key)); if (_memberResolver.IsAutoIdentity(prop.Key)) { column.AutoIncrement = true; } _dataTable.Columns.Add(column); } _dataTable.EndInit(); AutoSave = true; }
public void Update(T item) { var matchingItem = Get(item); _memberResolver.HydrateFromDictionary(matchingItem, _memberResolver.ConvertToDictionary(item)); }
protected override FooModel GetItemById(long id) { using (var conn = NewConnection()) { var cmdtext = "SELECT * FROM FooModel WHERE ID = @ID"; var cmd = new SqlCommand(cmdtext, conn); var dr = cmd.ExecuteReader(); var hydrator = new EntityMemberResolver<FooModel>(); dr.Read(); var item = new FooModel(); hydrator.HydrateFromDictionary(item, hydrator.ConvertToDictionary(dr)); return item; } }