我用我需要的表創建了我的dbml文件。所產生的方法之一就是這樣,名稱已被更改,並且在語法上不正確。但是我的代碼與創建的原始方法一起編譯。WCF/LINQ到SQL的序列化
[Association(Name="Clients_ToEmployee", Storage="_ToEmployees", ThisKey="ClientID", OtherKey="ClientID")]
[DataMember(Order=70, EmitDefaultValue=false)]
public EntitySet<ClientToEmployee> ClientToEmployees
{
get
{
if ((this.serializing &&(this._ToEmployees.HasLoadedOrAssignedValues == false)))
{
return null;
}
return this._ToEmployees;
}
set
{
this._ToEmployees.Assign(value);
}
}
當我嘗試使用
DataContractSerializer ser =
new DataContractSerializer(clientObj.GetType());
var memStream = new System.IO.MemoryStream();
ser.WriteObject(memStream ,clientObj);
memStream .Seek(0, System.IO.SeekOrigin.Begin);
var streamReader = new System.IO.StreamReader(memStream);
var xml = streamReader.ReadToEnd();
看起來這段代碼,請參見下面連載我的結果集,它總是返回null
if ((this.serializing && (this._ToEmployees.HasLoadedOrAssignedValues == false)))
如果設置了一個破發點,並逐步通過代碼然後上述聲明
this._ToEmployees.HasLoadedOrAssignedValues
是真的,我得到我的對象,而不是返回空。
爲什麼當我單步執行代碼時它的行爲正確?我應該引入一個延遲,以便Entityset對象被填充?