我有一个DataService,其中T是EntityFramework DbContext类。
我的客户端应用程序是一个带有服务引用的Windows Forms应用程序。
获取单个实体的最佳方法是什么?
这段代码有效:
var uri = new Uri("http://localhost/ProductService.svc/");
var context = new ProductContext(uri);
var result = context.Products.Where(x => x.ProductId == 123).FirstOrDefault();
然而,它能够运行是因为产品存在。这是因为我可以通过执行来看到结果。
http://localhost/ProductService.svc/Products(123)
在浏览器中。如果我想查询数据库中不存在的产品123456。
http://localhost/ProductService.svc/Products(123456)
我看到了一个错误消息:资源未找到,对应的段是“Products”。
问题在于,客户端出现了异常,但我本来期望 FirstOrDefault()
返回 null。当然,我可以使用一些异常处理,但我想知道我的方法是否正确或者是否有更好的方式来获取单个对象。
dbContext
的using
块,因为它实现了IDisposable接口。 - Brad MProductContext
是一个不可释放的System.Data.Services.Client.DataServiceContext
。 - Jürgen Steinblockdefault(T)
,但我期望一个对象类型。 - Jürgen Steinblock