首先,我是WCF世界的新手,所以如果这听起来很天真,请原谅我。wcf服务可以松散地解耦
据我了解,与基于ASP.NET网站,其使用ADO.NET传达给数据库,基于Silverlight的应用程序总是需要一个WCF RIA或服务进行通信,以DB。我们知道ASP.NET网站与数据库模型没有紧密耦合,因此可以使用ADO.NET运行任何存储过程,并在网格中查看结果,而不必了解生成的对象模型。
然而,在WCF RIA或服务,你必须总是有它与数据库实体模型同步,并没有在服务中的结果模式不能运行任何存储过程。因此,Silverlight在某种程度上迫使我们与数据库模型紧密结合。
有什么办法,我可以查看在网格上不管PROC得到在后端改变的次数的存储过程的结果?
是的,我知道WCF提供了一个合约,并且数据对象被序列化以供客户端使用。在我的应用程序中,我有一个可以调用存储过程的linq sql类,而IResult是由设计器自动生成的。只要存储过程没有改变,这个工作就会生效,但是一旦我添加或删除一个列形成结果,我将不得不更新服务。我想知道是否可以通过提供存储的proc名称以及参数来对数据库进行泛型调用(即,像在ADO.NET中使用SqlCommand,CommandType = sp和SqlReader一样) – Hari 2010-10-19 22:15:36
WCF中绝对没有任何东西阻止您使用普通的ADO.NET作为你的数据库层。您只需使用您手动编写的POCO(Plain Old CLR对象),而不是L2S或EF为您生成的类。 – 2010-10-19 22:48:24
@哈里 - 我已经编辑了我的答案以回应你的评论 – slugster 2010-10-19 22:53:04