У меня есть приложение Windows Forms (.NET 4.0), работающее с базой данных Sql Server CE 3.5, к которому я получаю доступ через соединение EF.
Вот мой начальный запрос, который возвращает два результата:
var list = db.UserPresentation
.Select(up => new
{
UserPresentationID = up.UserPresentationID,
PresentationName = up.PresentationName,
DateRequested = up.DateRequested,
Edit = string.Empty,
Delete = string.Empty,
Download = string.Empty
})
.OrderByDescending(up => up.DateRequested)
.ToList();
Теперь я ввожу внешнюю переменную и предложение where, и она возвращает ноль результатов. Если я запускаю этот же код в LinqPad, он возвращает 2 результата.
int userID = 2;
// load list of user presentations
var list = db.UserPresentation
.Where(up => up.UserID == userID)
.Select(up => new
{
UserPresentationID = up.UserPresentationID,
PresentationName = up.PresentationName,
DateRequested = up.DateRequested,
Edit = string.Empty,
Delete = string.Empty,
Download = string.Empty
})
.OrderByDescending(up => up.DateRequested)
.ToList();
Теперь я жестко закодировал идентификатор пользователя внутри запроса, и он снова возвращает два результата:
var list = db.UserPresentation
.Where(up => up.UserID == 2)
.Select(up => new
{
UserPresentationID = up.UserPresentationID,
PresentationName = up.PresentationName,
DateRequested = up.DateRequested,
Edit = string.Empty,
Delete = string.Empty,
Download = string.Empty
})
.OrderByDescending(up => up.DateRequested)
.ToList();
Я действительно в тупике. Есть идеи, что здесь происходит?