как передать NULL в столбец int в linq

Как мы назначаем нулевое значение для столбца int в LINQ. например.

 SQLDBDataContext sqlD = new SQLDBDataContext();
 var result = from p in sqlD.loadsRadius(Convert.ToInt32(Request["radius"]), .....

здесь, если Запрос ["радиус"] равен нулю, выдает ошибку.

Я мог передать 0 через это, но мне нужно изменить во многих уже существующих процедурах.

Заранее спасибо.
индиго

10.12.2008 13:09:24
5 ОТВЕТОВ

Если исключением является FormatException, я предполагаю, что значение, возвращаемое Request ["radius"], фактически является строкой "null". Если Request ["radius"] фактически возвратил ноль, Convert.ToInt32 () вернул бы ноль. Вы можете попробовать использовать int.TryParse (), чтобы избежать исключения.

2
10.12.2008 13:58:23

как предложено Codechef ..

int radius = -1;
int.TryParse(Request["radius"],out radius)
if(radius > 0) // you can remove this clause if you don't want this
{
SQLDBDataContext sqlD = new SQLDBDataContext();
 var result = from p in sqlD.loadsRadius(radius)
}
0
10.12.2008 14:09:18

Посмотрите на обнуляемые типы: здесь.

0
10.12.2008 14:35:21

Вы могли бы использовать ?? Оператор, как это:

Convert.ToInt32(Request["radius"] ?? "0")

Если Request ["radius"] равен нулю, он вернет "0".

0
12.12.2008 05:34:14

Вам нужно указать значение int равным нулю, например:

var result = from p in sqlD.loadsRadius(string.IsNullOrEmpty(Request["radius"]) ? (int?)null : int.Parse(Request["radius"]);
4
12.12.2008 05:34:42