调用WCF Data Service的几点Tips
- 摘要:使用Linq实现sqlinstatement的时候,用EF的时候可以通过Contains、Exists的方法实现。但是在使用WCFDataService的context的时候,会报不支持该方法的错误。解决方案就是加上AsEnumerable()。varproducts=frompinctx.V_Product.AsEnumerable()wherecatalogs.Exists(c=>c.CatalogID==p.CatalogID)selectp主从表级联操作的时候,需要建好外键关系
- 标签:Service 几点 WCF
- 使用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
- 主从表级联操作的时候,需要建好外键关系。调用ctx.SaveChanges的时候使用带参数的方法重载。
ctx.SaveChanges(System.Data.Services.Client.SaveChangesOptions.Batch)
这样就可以主表的自增长的ID,会保存到从表外键字段里去;并且主从表数据批量(带事务)的提交。
- 版本问题,用WCF Data Service5.6的时候,EF用6.0始终会报错,没有细究原因,换成EF5.0就没有问题了。