Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq到SQL错误SQL不比较Xml?_C#_Sql_Xml_Linq - Fatal编程技术网

C# Linq到SQL错误SQL不比较Xml?

C# Linq到SQL错误SQL不比较Xml?,c#,sql,xml,linq,C#,Sql,Xml,Linq,当您有XML字段时,是否可以使用datacontext或LINQ?我们成功地在中更新了xml字段,但一旦它在数据库中,由于上述错误,我们就无法更新任何其他字段。我们尝试在实体上设置(UpdateCheck=UpdateCheck.Never),但这仅仅意味着xml甚至不会插入。有没有办法解决这个问题或者我们缺少的选项 下表如下 CREATE TABLE [Header] ( ID int NOT NULL IDENTITY (1, 1), FileName varchar(50)

当您有XML字段时,是否可以使用datacontext或LINQ?我们成功地在中更新了xml字段,但一旦它在数据库中,由于上述错误,我们就无法更新任何其他字段。我们尝试在实体上设置(UpdateCheck=UpdateCheck.Never),但这仅仅意味着xml甚至不会插入。有没有办法解决这个问题或者我们缺少的选项

下表如下

CREATE TABLE [Header]
(
    ID int NOT NULL IDENTITY (1, 1),
    FileName varchar(50) NOT NULL,
    XMLData xml NOT NULL,
    StatusID int NOT NULL,
    TypeID int NOT NULL,
    CreatedDate DateTime NOT NULL Default getdate(),
    LastUpdatedDate DateTime NOT NULL Default getdate()
)  ON [PRIMARY]
实体,当我们尝试添加(UpdateCheck=UpdateCheck.Never)时,它甚至从未插入xml

[Table(Name = "Header")]
public class HeaderEntity
{
    [Column(IsPrimaryKey = true, IsDbGenerated = true)]
    public int ID { get; set; }
    [Column]
    public String FileName { get; set; }
    [Column]
    public XDocument XMLData { get; set; }
    [Column]
    public int StatusID { get; set; }
    [Column]
    public int TypeID { get; set; }
    [Column]
    public DateTime LastUpdatedDate { get; set; }
}
此方法可以工作,但xmldata为空,此方法会添加它

    public void UploadHeaderXML(HeaderEntity HeaderEntityNew)
    {
        String ConnectionString = ConfigurationManager.ConnectionStrings["DB"].ConnectionString;
        var dataContext = new DataContext(new SqlConnection(ConnectionString));

        HeaderEntity HeaderEntitytoUpdate = dataContext.GetTable<HeaderEntity>().Single(p => p.ID == HeaderEntityNew.ID);
        HeaderEntitytoUpdate.XMLData = HeaderEntityNew.XMLData;

        dataContext.SubmitChanges();
    }
public void UploadHeaderXML(HeaderEntity HeaderEntityNew)
{
String ConnectionString=ConfigurationManager.ConnectionString[“DB”].ConnectionString;
var dataContext=newdatacontext(newsqlconnection(ConnectionString));
HeaderEntity HeaderEntityUpdate=dataContext.GetTable().Single(p=>p.ID==HeaderEntityNew.ID);
HeaderEntityUpdate.XMLData=HeaderEntityNew.XMLData;
dataContext.SubmitChanges();
}
此方法给出了错误Linq to SQL错误SQL不比较Xml

    public void UpdateAudit(Int32 ID, Int32 auditID)
    {
        String ConnectionString = ConfigurationManager.ConnectionStrings["DB"].ConnectionString;
        var dataContext = new DataContext(new SqlConnection(ConnectionString));

        HeaderEntity HeaderEntitytoUpdate = dataContext.GetTable<HeaderEntity>().Single(p => p.ID == ID);
        HeaderEntitytoUpdate.StatusID = auditID;

        dataContext.SubmitChanges();
    }
public-void-UpdateAudit(Int32-ID,Int32-audit)
{
String ConnectionString=ConfigurationManager.ConnectionString[“DB”].ConnectionString;
var dataContext=newdatacontext(newsqlconnection(ConnectionString));
HeaderEntity HeaderEntityUpdate=dataContext.GetTable().Single(p=>p.ID==ID);
HeaderEntitytoUpdate.StatusID=已试听;
dataContext.SubmitChanges();
}

将更新更改为更新xml有效。如果有更整洁的解决方案,我会接受这个答案

    public void UpdateAudit(Int32 rpaID, Int32 auditID)
    {
        String ConnectionString = ConfigurationManager.ConnectionStrings["RPADB"].ConnectionString;
        var dataContext = new DataContext(new SqlConnection(ConnectionString));

        RPAHeaderEntity RPAHeaderEntitytoUpdate = dataContext.GetTable<RPAHeaderEntity>().Single(p => p.RPAID == rpaID);
        RPAHeaderEntitytoUpdate.RPAStatusID = auditID;
        RPAHeaderEntitytoUpdate.XMLData = new XDocument(RPAHeaderEntitytoUpdate.XMLData);**


        dataContext.SubmitChanges();
    }
public void UpdateAudit(Int32 rpaID,Int32 audit)
{
String ConnectionString=ConfigurationManager.ConnectionString[“RPADB”].ConnectionString;
var dataContext=newdatacontext(newsqlconnection(ConnectionString));
RPAHeaderEntity RPAHeaderEntitytoUpdate=dataContext.GetTable().Single(p=>p.RPAID==RPAID);
RPAHeaderEntitytoUpdate.RPAStatusID=audited;
RPAHeaderEntitytoUpdate.XMLData=新的XDocument(RPAHeaderEntitytoUpdate.XMLData)**
dataContext.SubmitChanges();
}