如何将XAttribute Value设置为null

时间:2010-08-06 03:07:59

标签: linq linq-to-xml

 XElement xml = new XElement("MyMenu",
                     from c in db.Security_Module_Menus
                     //where (c.ParentID == 0)
                     orderby c.Menu_ID
                     select new XElement("Item",
                               new XAttribute("Text", c.Menu_Name), new XAttribute("NavigateUrl", c.Target_URL)


                               )
                     ); 

从上面的语法 c.Menu_Name,c.Target_URL 值可以为空。请告诉我错误

值不能为空。 参数名称:值我知道 SetElementValue()用于解决此错误。但我如何使用上面的语法。帮我使用它。显示语法

1 个答案:

答案 0 :(得分:2)

如果c.Menu_Name和c.Target_URL为null,大概你想避免创建属性?如果是这样,您可以按如下方式进行:

new XElement("MyMenu",
  from c in db.Security_Module_Menus
  orderby c.Menu_ID
  select new XElement("Item",
    c.Menu_Name == null ? null : new XAttribute("Text", c.Menu_Name),
    c.Target_URL == null ? null : new XAttribute("NavigateUrl", c.Target_URL))
  )