public T Create(T t) { var sql = string.Format(@"INSERT INTO [{0}] ([Data]) Values(@Data)", Table); var cmd = Command(sql); var serializer = new BSonSerializer(); var binaryData = serializer.Serialize(t); var dataParam = new SqlCeParameter("@Data", binaryData); dataParam.SqlDbType = SqlDbType.Image; cmd.Parameters.Add(dataParam); cmd.ExecuteNonQuery(); var reader = ExecDataReader(string.Format("SELECT * FROM [{0}] WHERE ([ID] = @@IDENTITY)", Table)); reader.Read(); var ob = Map(reader); reader.Close(); var id = GetID(ob); SetID(t, id); return(ob); }
private T Map(SqlCeDataReader reader) { var id = (int)reader["ID"]; var data = (byte[])reader["Data"]; var serializer = new BSonSerializer(); var obj = serializer.Deserialize <T>(data); SetID(obj, id); return(obj); }
public T Update(T t) { var id = GetID(t); var sql = string.Format("UPDATE [{0}] SET [DATA]=@Data WHERE [ID]={1}", Table, id); var cmd = Command(sql); var serializer = new BSonSerializer(); var binaryData = serializer.Serialize(t); var dataParam = new SqlCeParameter("@Data", binaryData); dataParam.SqlDbType = SqlDbType.Image; cmd.Parameters.Add(dataParam); cmd.ExecuteNonQuery(); return(t); }