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