WEB开发网
开发学院图形图像Flash Silverlight 2 (beta1)数据操作(5)——使用LINQ t... 阅读

Silverlight 2 (beta1)数据操作(5)——使用LINQ to SQL进行数据CRUD操作(上)

 2008-10-11 11:42:26 来源:WEB开发网   
核心提示: Web Service层实现服务层就是在Silverlight客户端与Web服务端提供一个通道,官方推荐使用WCF来读取,Silverlight 2 (beta1)数据操作(5)——使用LINQ to SQL进行数据CRUD操作(上)(4),当然ASMX也可以,我想不久将来微软可能专门为S

Web Service层实现

服务层就是在Silverlight客户端与Web服务端提供一个通道,官方推荐使用WCF来读取,当然ASMX也可以。我想不久将来微软可能专门为Silverlight设计一个Silverlight-Enabled WCF Service,不过现在使用WCF Service也可以访问,使用这个的时候一定要注意在web.config文件中把wsHttpBinding改为basicHttpBinding。

第一步:添加WCF服务

Silverlight 2 (beta1)数据操作(5)——使用LINQ to SQL进行数据CRUD操作(上)

第二步:定义服务契约。我们为WCF Service提供的增删查改方法定义服务契约。

[ServiceContract]
public interface IAcademeService
{
  [OperationContract]
  List<Product> GetAllProducts();
  [OperationContract]
  Product SaveProduct(Product product);
  [OperationContract]
  void DeleteProduct(Product product);
}

第三步:实现服务:为增删查改方法具体实现。

在这里,提供一个小技巧,在IAcademeService下点击小箭头,选择实现接口,VS自动为我们生成了上面定义的没有实现的方法。

Silverlight 2 (beta1)数据操作(5)——使用LINQ to SQL进行数据CRUD操作(上)

接着我们完成这些方法:其中SaveProduct方法用于更新和插入数据,这里使用了LINQ to SQL语句。

public class AcademeService : IAcademeService
{
  public List<Product> GetAllProducts()
  {
    AcademeDataContext db = new AcademeDataContext();
    var products = from p in db.Products
            select p;
    return products.ToList<Product>();
  }
  public Product SaveProduct(Product product)
  {
    AcademeDataContext db = new AcademeDataContext();
    if (product.ProductID > 0)
    {
      //更新记录
      db.Products.Attach(product, true);
    }
    else
    {
      //插入记录
      db.Products.InsertOnSubmit(product);
    }
    db.SubmitChanges();
    return product;
  }
  public void DeleteProduct(Product product)
  {
    AcademeDataContext db = new AcademeDataContext();
    db.Products.Attach(product, true);
    db.Products.DeleteOnSubmit(product);
    db.SubmitChanges();
  }
}

第四步:配置web.cofig文件。只需要把wsHttpBinding改为basicHttpBinding

    <serviceBehaviors>
      <behavior name="AcademeServiceBehavior">
       <serviceMetadata httpGetEnabled="true"/>
       <serviceDebug includeExceptionDetailInFaults="false"/>
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <services>
    <service behaviorConfiguration="AcademeServiceBehavior"
      name="AcademeService">
      <endpoint address="" binding="basicHttpBinding"
       contract="IAcademeService">
        <identity>
          <dns value="localhost"/>
        </identity>
      </endpoint>
      <endpoint address="mex" binding="mexHttpBinding"
       contract="IMetadataExchange"/>
    </service>
  </services>
</system.serviceModel>

第五步:设置Web应用程序的端口号。把器端口号设置为固定端口52600,在浏览器中查看服务是否正常。

到此,编译一下Web项目,我们已经完成了所有的事情了,下一步就是在Silverlight中调用这个服务了。

上一页  1 2 3 4 

Tags:Silverlight 数据

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接