The trick here is to cast the Connection property of the ObjectContext to the type System.Data.EntityClient.EntityConnection. Then you can access the StoreConnection property:
01.var dataTable = new DataTable02. {03. Columns = { new DataColumn("Value", typeof(string)) }04. };05.dataTable.Rows.Add("first row");06.dataTable.Rows.Add("second row");07.dataTable.Rows.Add("third row");08. 09.//10.// EF does not support table-valued parameters, so we'll do it ourselves11.//12.using (var ctx = new MyObjectContext())13.using (var cn = new SqlConnection(((System.Data.EntityClient.EntityConnection)ctx.Connection).StoreConnection.ConnectionString))14.using (var cmd = cn.CreateCommand())15.{16. cmd.CommandText = "SomeRealyCoolStoredProcedure";17. cmd.CommandType = CommandType.StoredProcedure;18. 19. cmd.Parameters.AddWithValue("ID", 123456);20. cmd.Parameters.AddWithValue("ValuesTable", dt).TypeName = "MyTableType";21. 22. cn.Open();23. cmd.ExecuteNonQuery();24.}
Thanks you very much!