【发布时间】:2011-12-02 16:11:35
【问题描述】:
简短的故事是,我希望能够将 IEnumerable 分配给我的 Context.Customers 属性(这是从 SQL 类型的 System.Data.Linq.Table 导入的表;客户是实体类型)。
现在您可能想知道的第一件事是“为什么要这样做?”是的,通常有更好的方法可以做到这一点,但我不是在一般情况下操作。对我的项目的限制意味着我无权访问项目的“网络”部分。因此,我将使用托管在 IIS 中的 WCF 服务来解决此问题。该服务持有 DataContext 对象并对数据库进行调用,并与 Silverlight 应用程序通信。
Silverlight 应用程序调用 GetCustomersAsynch,然后等待完成的事件,此时它可以使用客户实体的集合。我的问题是关于提交这些更改。我可以将更改后的集合发送回 WCF 服务,但 DataContext 对象的“客户”属性是只读的,因此我不能只将一个分配给另一个。我也不能将它们一一写出来,因为可能已经添加了一个新条目(或者,可能是新条目)。我想要的是使用传递的集合更新 DataContext 的 Customers 属性,然后我将在 DataContext 上调用 Submit 以将更改提交到数据库。
如果有人有任何建议或想法,请告诉我。
提前致谢。
【问题讨论】:
-
您使用的是 WCF RIA 服务、WCF 数据服务,还是只是普通的 WCF 服务?
-
我不明白你在做什么。
DataContext应该是System.Data.Linq.DataContext类,不是吗?但如果是这样,如果 Silverlight 不支持 LINQ to SQL,你怎么能在 Silverlight 代码中使用它呢?您不应该能够添加对相应程序集的引用。 -
啊,我以为我提到了那个。 DataContext 实例位于 WCF 服务中。我通过从 Silverlight 应用程序调用我的 WCF 服务来访问其中的信息。当我将新数据传递给服务时,我需要它更新 DataContext 对象,然后才能告诉它提交更改。
标签: c# silverlight wcf