在服务器端,我有一个Entity Framework DbContext NorthwindContext
和一个System.Data.DataService<NorthwindContext>
我的客户需要查询dataservice。我可以用
来检索数据var uriString = "http://localhost:8888/northwind.svc";
var context = new DataServiceContext(new Uri(uriString));
var query = context.CreateQuery<orders>("orders");
var result = query.ToList();
好的到目前为止这是有效的。我没有使用visual studio工具链进行客户端代理/类生成,但创建了我自己的&#34; copy&#34;看起来像这样的订单类
[DataServiceKey("OrderID")]
public partial class orders
{
public int OrderID { get; set; }
public string CustomerID { get; set; }
...
}
这只能起作用,因为我指定了DataServiceKey属性。如果我不这样做,我会得到DataServiceQueryException
DataServiceKey来自Microsoft.Data.Service.Client
我的主程序集引用我的模型orders
是一个单独的程序集,我不想引用Microsoft.Data.Service.Client
是否可以使用我的查询而无需使用DataServiceKey
属性装饰我的类?
答案 0 :(得分:0)
您无法从声明的实体中删除DataServiceKey。
•实体键 - 作为实体类型的每个数据类必须具有键属性。此属性归因于DataServiceKeyAttribute属性([DataServiceKeyAttribute])。
链接: http://msdn.microsoft.com/en-us/library/dd723653(v=vs.113).aspx
此致 Kajal
答案 1 :(得分:0)
为OData创建自己的数据模型时,有备用数据注释。
请参阅System.ComponentModel.DataAnnotations和(取决于框架版本)System.ComponentModel.DataAnnotations.Schema。但是,我在使用DbContext
创建WCF DataService时使用了这些,而不是基础模型的DataServiceContext
。