MSa*_*ika 16 .net linq entity-framework linq-to-xml
这是我的实体类,包含一个实体:
[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; }
}
Run Code Online (Sandbox Code Playgroud)
在这里,我使用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) ));
}
Run Code Online (Sandbox Code Playgroud)
但在这里我收到了这个错误:
'[white space]'字符,十六进制值0x20,不能包含在名称中.
根据cim.ITEM我的分析,该列是一个非Nullable列但是从DataBase获取数据时获取Null(每列的数据为Null)
Ser*_*kiy 36
元素名称中有空格,XML中不允许使用:
new XElement("ITEM ", cim.ITEM), // starting from this element
// ^ here
Run Code Online (Sandbox Code Playgroud)
删除空格以使元素名称有效.BTW将null作为元素值完全可以.
如果您尝试创建任何 XElement/ 节点中包含空格的 XML 文件,通常会发生这种情况。确保 Xml 节点名称中没有任何空格。
例子:
这将引发错误,因为“帐号”XElement 或节点中存在空格,这在 XML 中是不允许的。
XDocument xdoc = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XComment("Create Sample Xml from Dyanamic Data"),
new XElement("Company",
new XElement("Employees",
from e in DAL.GetEmp()
select
new XElement("Employee", new XAttribute("id", e.Id),
new XElement("EmpName", e.Name),
new XElement("Designation", e.Designation),
new XElement("Location", e.Location),
new XElement("Account Number", e.Account),
new XElement("PAN", e.Pan),
new XElement("PF", e.PF)))));
xdoc.Save(@"D:\DynamicFile.xml");
Run Code Online (Sandbox Code Playgroud)
只需将“ Account Number ”XElement中的空格删除为“ AccountNumber ”即可。完成了。因此,请查找您错误创建的空间。希望它可以帮助某人。