0
LINQ를 사용하여 LINQ를 SQL 데이터베이스에 연결하고 로컬 XML 데이터 집합을 데이터 집합에 사용하는 SQL 데이터베이스가 있습니다. "tblDoc : sourcePath, document : xmlLink"키의 SQL 테이블 "tblDoc"및 데이터 세트 테이블 "document"에서 외부 왼쪽 조인을 수행해야합니다. 두 키 모두 불행히도 문자열입니다. 아래에있는 코드는 결과를 반환하지 않으며 몇 가지 변형을 시도했지만 LINQ 기술은 제한적입니다. 누구든지 시도 할 대안이나 제안이 있습니까?LINQ to SQL을 LINQ to DataSet에 연결합니다.
DataColumn xmlLinkColumn = new DataColumn(
"xmlLink",System.Type.GetType("System.String"));
xmlDataSet.Tables["document"].Columns.Add(xmlLinkColumn);
foreach (DataRow xmlRow in xmlDataSet.Tables["document"].Rows)
{
xmlRow["xmlLink"] = (string)xmlRow["exportPath"] +
(string) xmlRow["exportFileName"];
}
var query =
from t in lawDataContext.tblDocs.ToList()
join x in xmlDataSet.Tables["Document"].AsEnumerable()
on t.SourceFile equals (x.Field<string>("xmlLink"))
select new
{
lawID = t.ID,
xmlID = x == null ? 0 : x.Field<int>("id")
};
foreach (var d in query.ToArray())
{
Debug.WriteLine(d.lawID.ToString() + ", " + d.xmlID.ToString());
}
감사합니다! 결과에서 xmlID에 대해 여전히 null 값을 얻고 있습니다. :(문자열 값에 대해 "equals"를 사용하려고했기 때문에 그렇습니까? –
왼쪽 외부 조인을 할 때'null' 값을 갖습니다. "저에게 * ALL * 테이블 및 해당 테이블의 해당 값을 반환합니다. LINQ 쿼리의 익명 형 프로젝션에서'xmlID = null'으로 끝나야한다는 것을 의미합니까? –