0
這裏是我的方案 我得到LINQ2SQL關係和WCF序列化問題
表1
- ID
- 名
表2
- ID
- 家庭
- FID
與一對多的關係表1之間。 ID和Table2.fid
現在這裏是我的WCF服務代碼
[OperationContract]
public List<Table1> GetCustomers(string numberToFetch)
{
using (DataClassesDataContext context = new DataClassesDataContext())
{
return context.Table1s.Take(int.Parse(numberToFetch)).ToList();
}
}
和我的ASPX頁面代碼
<body xmlns:sys="javascript:Sys"
xmlns:dataview="javascript:Sys.UI.DataView">
<div id="CustomerView"
class="sys-template"
sys:attach="dataview"
dataview:autofetch="true"
dataview:dataprovider="Service2.svc"
dataview:fetchParameters="{{ {numberToFetch: 2} }}"
dataview:fetchoperation="GetCustomers">
<ul>
<li>{{family}}</li>
</ul>
</div>
雖然我在LINQ2SQL設計器中設置序列化模式爲單向我不能夠獲得家庭價值和所有我得到的是這在螢火蟲
{"d":[{"__type":"Table1:#","id":1,"name":"asd"},{"__type":"Table1:#","id":2,"name":"wewe"}]}
任何幫助將是完全讚賞
非常感謝答案,我可能是錯的,但與Linq2sql映射table2是table1的屬性,因此沒有必要加入,我可以像Table1.Table2訪問它,請糾正我,如果我錯了請。 – DevMania 2010-03-15 10:32:05
@devmania:是的,你可以 - 但這並不意味着它會被序列化回客戶端。當您從Table1中選擇* only *時,Linq-to-SQL無法包含所有Table2屬性。如果你想要,你需要問它。但是你是對的 - 你可以寫:'Table2Family = t1.Table2。Family'作爲LINQ – 2010-03-15 11:02:32
的select語句中的最後一行bro非常感謝您的詳細解答,但問題是我正在創建一個可插入系統,因此我希望ta方式只是在不重新編輯WCF的情況下接收新的子表。代碼,所以dataoption將無法正常工作,因爲我必須每次添加新插件時重新編輯它,這真的讓我瘋狂 – DevMania 2010-03-15 11:30:51