1)  Допустим, что
public class Company
{
    public int Id { get; set; }
    public string Name { get; set; }
    public List<Employee> Employees { get; set; }
}
public class Employee
{
    public int Id { get; set; }
    public string FirstName { get; set; }
}
Тогда сохранить можно примерно так:
int employeeId;
int companyId;
using (var context = new EntitiesContext())
{
    var employee = new Employee { FirstName = "John" };
    var company = new Company { Name = "Contoso" };
    company.Employees.Add(employee);
    context.Companies.Add(company);
    context.SaveChanges();
    employeeId = employee.Id;
    companyId = company.Id;
}
После SaveChanges() появятся айдишники, если они еще нужны где-то дальше (записи уже будут связаны в БД).
2. Если падает исключение, то пишите исключение в вопросе. Скорее всего 
'LINQ to Entities does not recognize the method 'Int32 ToInt32 (System.String)','. 
Делайте преобразование в число, вне LINQ,
var idInt = Convert.ToInt32(comboBoxServices.SelectedValuePath);
var perforList = from p in context.performers
join o in context.orderperformer on p.performerID equals o.perfromerID
 where o.serviceID == idInt
select new { p.secondName, p.firstName, p.patronymic, o.price };