Dot-Net
Linq to Xml:異常 - ’’ 字元,十六進制值 0x20,不能包含在名稱中
這是我的帶有 Entity 的實體類:
[Table(Name = "CLINICAL_ITEM_MASTER")] public class ClinicalItemMaster { [Column] public int CLIENT_INPUT_MHS_ID { get; set; } [Column] public Guid CLIENT_INPUT_MHS_GUID { get; set; } [Column] public string ITEM { get; set; } [Column] public int ITEM_ID { get; set; } [Column] public string ITEM_NUMBER { get; set; } [Column] public string CATEGORY { get; set; } [Column] public string DESCRIPTION { get; set; } [Column] public DateTime? CREATE_DTTM { get; set; } [Column] public DateTime? UPDATE_DTTM { get; set; } }在這裡,我正在使用 Linq to XML(SQL) 方法訪問該數據庫表數據:
private XElement GetClinicalItemMaster() { try { using (MyDatabase db = new MyDatabase()) { return new XElement("CLINICALITEMMASTER", from cim in db.TblClinicalItemMaster select new XElement("Record", new XElement("CLIENT_INPUT_MHS_ID", cim.CLIENT_INPUT_MHS_ID), new XElement("CLIENT_INPUT_MHS_GUID", cim.CLIENT_INPUT_MHS_GUID.ToString()), new XElement("ITEM ", cim.ITEM), new XElement("ITEM_ID ", cim.ITEM_ID), new XElement("ITEM_NUMBER ", cim.ITEM_NUMBER.ToString()), new XElement("CATEGORY ", cim.CATEGORY.ToString()), new XElement("DESCRIPTION ", cim.DESCRIPTION), new XElement("MFG_CODE ", cim.MFG_CODE) )); }但是在這裡我收到了這個錯誤:
“[空白]”字元,十六進制值 0x20,不能包含在名稱中。
該列是
cim.ITEM,根據我的分析,它是一個不可為空的列,但是從數據庫獲取數據時得到空(每列的數據為空)
元素名稱中有空格,這在 XML 中是不允許的:
new XElement("ITEM ", cim.ITEM), // starting from this element // ^ here刪除空格以使元素名稱有效。順便說一句,將 null 作為元素值是完全可以的。