Я работаю с некоторыми таблицами, где я хочу, чтобы класс C # имел имя свойства, отличное от столбца базовой таблицы. Однако, когда я использую метод Translate для чтения результатов, свойства, которые не соответствуют имени источника, никогда не заполняются. Даже когда я использую Linq для генерации SQL.
Например, моя таблица определена в БД следующим образом:
CREATE TABLE User_Entry (
UserId int IDENTITY (1, 1) NOT NULL,
Login_Id varchar (50) NOT NULL,
Active char(1) NOT NULL,
PASSWORD varchar(75) NULL
)
Вот класс, на который он отображается (сгенерированный дизайнером LINQ ... Атрибуты LINQ и другие вещи, оставленные для краткости):
public partial class User
{
int UserId;
string Login;
string Active,
string Pwd
}
Когда я делаю следующее, свойства Login и Pwd не заполняются, а свойства UserId и Active.
Data.DbContext db = new Data.DbContext();
IQueryable query = db.Users.Where(usr => usr.Login == request.LoginString);
SqlCommand cmd = (SqlCommand)data.GetCommand(query);
... execute the command (asynchronously) ...
User user = db.Translate<User>( dataReaderResult ).FirstOrDefault();
! На этом этапе я проверяю объект пользователя и вижу, что столбцы Login и Pwd не заполнены!
Вот sql, который был сгенерирован:
exec sp_executesql N'SELECT [t0].[UserID] AS [UserId], [t0].[Login_ID] AS [Login], [t0].[Active], [t0].[PASSWORD] AS [Pwd]
FROM [dbo].[User_Entry] AS [t0]
WHERE [t0].[Login_ID] = @p0', N'@p0 varchar(13)', @p0 = 'test_user'
Первоначально, когда столбец UserId имел другое имя свойства, я получал исключение The required column [UserId] does not exist in the results
. Я оглянулся и увидел ответ от некоторых людей из MSFT, которые сказали, что это ошибка.
Это связано? Было ли это когда-нибудь исправлено? Кто-нибудь знает, когда это будет исправлено?
Редактировать: Дополнительная информация.
Ошибка, с которой я думаю, связана с комментарием Кэти Лу MSFT от 14 августа 2007 года здесь , где она говорит:
Спасибо за сообщение об этой проблеме. По вашей проблеме мы смогли воспроизвести проблему, и команда разработчиков изучает соответствующую сортировку и решение.
Мне интересно, связано ли это с тем, что я испытываю, и могу ли я получить больше информации об этом. Я искал linq translate site:connect.microsoft.com
, но ничего не нашел.