我目前正在使用实体框架(与.NET Framework版本3.5 SP1一起打包的版本)和大量AJAX基于的功能,我正在客户端使用jQuery并在服务器端使用ASP.NET WebMethods。通过ASP.NET在JSON中添加实体框架实体(一对多)WebMethod
我通常创建使用接受的实体作为参数一个WebMethod新的实体如下:
[WebMethod]
public static void Add(User user);
调用此方法时,我组装类似的实体的对象(在性质方面)在JavaScript和将它作为JSON字符串传递。但是,当尝试以多对多关系传递相关实体时,我遇到了一个问题。假设一个用户实体与Flight实体有一对多的关系 - 添加一个拥有多个(新)航班的新用户证明是有问题的。以下方法:
this.user.Flight = [];
var x = new Object();
// Code here to populate x's properties
this.user.Flight.push(x);
// Repeat again for more flights
结果在ASP.NET错误(在反序列化阶段),指出列表不能转换为EntityCollection。
我又试图这种方法:
this.user.Flight = {};
var x = new Object();
// Code here to populate x's properties
this.user.Flight.firstFlight = x;
// Repeat again for more flights
在这种情况下,将WebMethod成功调用,但丢失的航班完全(调用user.Flight.Count()中的WebMethod返回0)。
有没有人有任何想法如何我可以将一个EntityCollection中的多个航班传递给WebMethod?
在这里,只是因为你的用户名让我发笑才得到赞扬。 – 2009-11-17 13:25:51
+1确实,同上。 – grenade 2009-11-19 13:23:31
我在代码中看不到EntityCollection。你能否提供额外的澄清/代码剪辑? – 2009-11-19 16:44:17