C # linq2sql выделение нескольких столбцов - PullRequest
0 голосов
/ 04 февраля 2012

Я пытаюсь выбрать несколько столбцов в таблице carCheckouts. Я просто хочу, чтобы startMiles и endMiles были из одной строки, которую я знаю. Правильно ли мое утверждение linq? если так, как я могу превратить b.startMiles и b.endMiles в используемые переменные после? Спасибо

var m = (from b in db.carCheckouts
where b.pk == primaryKey
select new {b.startMiles, b.endMiles});

Ответы [ 4 ]

3 голосов
/ 04 февраля 2012

Ваш текущий запрос возвращает IQueryable анонимного типа - но звучит так, как будто вы хотите один элемент:

var m = (from b in db.carCheckouts
where b.pk == primaryKey
select new {b.startMiles, b.endMiles}).Single();

Теперь вы можете использовать свойства m просто так:

Console.WriteLine("Start Miles:"  + m.startMiles);
2 голосов
/ 04 февраля 2012
var m = (from b in db.carCheckouts
where b.pk == primaryKey
select new {b.startMiles, b.endMiles});

double totalMiles;

foreach(var item in m)
{
    totalMiles = item.endMiles - item.startMiles;
}
2 голосов
/ 04 февраля 2012

Вы превратили m в анонимный тип (на самом деле m будет IQueryable <> этого типа anon), который можно использовать в любом месте внутри объявленной области.Типы Anon были добавлены, чтобы разрешить что-то подобное, чтобы у вас не было предварительного создания типа, который бы содержал эти значения, вы создаете тип на лету.

Если вы хотите иметь только 1, а неIQueryable вы можете сделать .FirstOrDefault или просто .First, чтобы дать вам 1 экземпляр этого типа anon.

1 голос
/ 04 февраля 2012

Вы также можете использовать

выберите новые {b.startMiles, b.endMiles}). FirstOrDefault ();

в вашем заявлении linq

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...