Pass List jako XElement do użycia jako parametr typu danych XML

Mam procedurę składowaną w SQL Server

CREATE PROCEDURE ParseXML (@InputXML xml)

Typ danych dla parametru wejściowego to „xml”.

W wygenerowanym kodzie LINQ na SQL dla procedury składowanej parametrem wejściowym jest System.Xml.Linq.XElement

[global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.ParseXML")]
public ISingleResult<ParseXMLResult> ParseXML([global::System.Data.Linq.Mapping.ParameterAttribute(Name="InputXML", DbType="Xml")] System.Xml.Linq.XElement inputXML)

Jak mogę przekazać następującą listę do metody ParseXML, aby procedura składowana działała?

EDYTOWAĆ:

Po przeczytaniu odpowiedzi - inne rozwiązanie znajduje się poniżej

XElement root = new XElement("ArrayOfBankAccountDTOForStatus",
new XAttribute(XNamespace.Xmlns + "xsi", "http://www.w3.org/2001/XMLSchema-instance"),
new XAttribute(XNamespace.Xmlns + "xsd", "http://www.w3.org/2001/XMLSchema"));


foreach (var element in bankAccountDTOList)
{

 XElement ex= new XElement("BankAccountDTOForStatus", 
                      new XElement("BankAccountID", element.BankAccountID),
                      new XElement("Status", element.Status));


 root.Add(ex);
} 

KOD W pytaniu

        string connectionstring = "Data Source=.;Initial Catalog=LibraryReservationSystem;Integrated Security=True;Connect Timeout=30";
        var theDataContext = new DBML_Project.MyDataClassesDataContext(connectionstring);

        List<DTOLayer.BankAccountDTOForStatus> bankAccountDTOList = new List<DTOLayer.BankAccountDTOForStatus>();
        DTOLayer.BankAccountDTOForStatus presentAccount1 = new DTOLayer.BankAccountDTOForStatus();
        presentAccount1.BankAccountID = 5;
        presentAccount1.Status = "FrozenF13";

        DTOLayer.BankAccountDTOForStatus presentAccount2 = new DTOLayer.BankAccountDTOForStatus();
        presentAccount2.BankAccountID = 6;
        presentAccount2.Status = "FrozenF23";
        bankAccountDTOList.Add(presentAccount1);
        bankAccountDTOList.Add(presentAccount2);

        //theDataContext.ParseXML(inputXML);

Wymagana struktura XML

Uwaga: Ten XML jest używany do niektórych operacji, a nie do bezpośredniego przechowywania w bazie danych jako XML. Muszę napisać wybrane zapytanie, które wyświetli dane z XML.

Logika procedur składowanych

DECLARE @MyTable TABLE (RowNumber int, BankAccountID int, StatusVal varchar(max))

INSERT INTO @MyTable(RowNumber, BankAccountID,StatusVal)

SELECT ROW_NUMBER() OVER(ORDER BY c.value('BankAccountID[1]','int') ASC) AS Row,
    c.value('BankAccountID[1]','int'),
    c.value('Status[1]','varchar(32)')
FROM
    @inputXML.nodes('//BankAccountDTOForStatus') T(c);

CZYTANIE

Jak serializować i zapisywać obiekt w bazie danych jako Xml, używając Linq do SQL

Jak użyć zapytania LINQ, aby uzyskać wartości XElement, gdy XElements mają tę samą nazwę

Linq-to-SQL z polami bazy danych XML - Dlaczego to działa?

http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=176385

questionAnswers(2)

yourAnswerToTheQuestion