• Как развернуть приложение через ClickOnce, использующую Entity Framework?

    Imagio
    @Imagio
    Турист, мотоциклист и программист
    В своем проекте делал вот так:
    App.config
    <system.data>
        <DbProviderFactories>
          <remove invariant="MySql.Data.MySqlClient" />
          <add
              name="MySQL Data Provider"
              invariant="MySql.Data.MySqlClient"
              description=".Net Framework Data Provider for MySQL"
              type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, 
                      Version=6.8.3.0, Culture=neutral, 
                      PublicKeyToken=c5687fc88969c44d"
          />
        </DbProviderFactories>
      </system.data>

    Ну и MySql.Data.dll + MySql.Data.Entity.dll копировать в выходной каталог при сборке.
    Ответ написан
    2 комментария
  • Как составить LINQ запрос?

    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 };
    Ответ написан
    Комментировать