调用WCF Data Service的几点Tips

时间:2022-09-28 12:50:43
  1. 使用Linq实现sql in statement的时候,用EF的时候可以通过Contains、Exists的方法实现。但是在使用WCF Data Service的context的时候,会报不支持该方法的错误。解决方案就是加上AsEnumerable()。
    var products = from p in ctx.V_Product.AsEnumerable()
    where catalogs.Exists(c => c.CatalogID == p.CatalogID)
    select p
  2. 主从表级联操作的时候,需要建好外键关系。调用ctx.SaveChanges的时候使用带参数的方法重载。
    ctx.SaveChanges(System.Data.Services.Client.SaveChangesOptions.Batch)

    这样就可以主表的自增长的ID,会保存到从表外键字段里去;并且主从表数据批量(带事务)的提交。

  3. 版本问题,用WCF Data Service5.6的时候,EF用6.0始终会报错,没有细究原因,换成EF5.0就没有问题了。