Не удалось разрешить конфликт сопоставления между «Latin1_General_CI_AS» и «SQL_Latin1_General_CP1_CI_AS» в операции равно - PullRequest
0 голосов
/ 03 марта 2011
public List<EmployeesX> GetView()
{
   Health_Scheme_System.Health_Scheme_SystemDB db = new Health_Scheme_System.Health_Scheme_SystemDB();

   var d = from empView in db.EmployeeDirectories
           join empTable in db.Employees on empView.ID_NO equals empTable.EmployeeIDCard 
           join s in db.Schemes on empTable.SchemeID equals s.SchemeID 
           select new EmployeesX {ID_NO = empView.ID_NO, FIRST_NAME = empView.FIRST_NAME, LAST_NAME = empView.LAST_NAME, EMPLOYMENT_DATE = ((DateTime)empView.EMPLOYMENT_DATE).Date, TERMINATION_DATE = ((DateTime)empView.TERMINATION_DATE).Date, LOCATION_CODE = empView.LOCATION_CODE };
           return d.ToList<EmployeesX>();
}

1 Ответ

5 голосов
/ 03 марта 2011

Под сопоставлением понимается набор символов, используемый для хранения данных в текстовых полях, и он необходим для обеспечения поддержки всех многих письменных языков мира.В каждом столбце может быть определено определенное сопоставление, или же оно может наследовать сопоставление базы данных.Вы можете столкнуться с проблемами, когда сравниваете столбцы с разными параметрами сортировки, так как символ одного сопоставления не обязательно эквивалентен тому же символу в другом сопоставлении.

  1. Либо столбцы в этом сравнении имеют разные значенияпараметры сортировки:

    empView.ID_NO равно empTable.EmployeeIDCard

  2. Или столбцы в этом сравнении имеют разные параметры сортировки:

    empTable.SchemeID равно s.SchemeID

Таким образом, вам нужно либо изменить параметры сортировки, чтобы они совпадали с вашей схемой базы данных:

ALTER TABLE MyTable ALTER COLUMN CharCol
            varchar(10)COLLATE Latin1_General_CI_AS NOT NULL

Или вы можете добавить collate database default к каждомусравнений в базовом sql.

...