我正在尝试使用以下LINQ语句填充下拉列表
var beskeder = from b in db.beskeds
join v in db.vedhaeftedeFilers on b.beskedId equals v.beskedId into x
from v in x.DefaultIfEmpty()
select new
{
beskedId = b.beskedId,
tekst = b.tekst,
dato = b.dato,
behandlet = b.behandlet,
medlemsid = b.medlemsid,
dokumentid = b.dokumentId,
filid = v.filId,
filnavn = v.filnavn,
filtype = v.filtype,
data = v.data,
DisplayText = "Besked fra bruger " + b.medlemsid.ToString() + ", " + b.dato
};
DropDownList1.DataSource = beskeder;
DropDownList1.DataValueField = "medlemsid";
DropDownList1.DataTextField = "DisplayText";
DropDownList1.DataBind();
但我收到错误消息
无法将null值分配给System.Int32类型的成员,该类型是不可为空的值类型。
我知道这是因为它不接受空值。如何使下拉列表接受空值。我会很感激语法示例
答案 0 :(得分:1)
我建议您更改策略,并删除具有空值的项目,或者为它们设置默认值,因为您正在使用LINQ投影(您创建新的匿名类型)。例如,你可以写:
select new
{
medlemsid = b.medlemsid == null ? 0 : b.medlemsid
};
投影中的,将空值转换为0