如何在 oData 结构中映射授权(和其他子信息)

How map authorizations (and other sub-infos) in oData structure

这是 oData EDM 的基本架构: thanks for the image Filippo

我有我的数据库结构:

Product (Code, Description, IVA, Price)
|n
|
|
|
|1
Purchase(ID, Product, Customer)

我想使用 oData 公开我的数据;我可以在两个 EntitySet 中以自然的方式映射 Product 和 Purchase:ProductSetPurchaseSet.

例如,如果我需要 ProductSet 的所有项目,我会收到 100 个产品的集合;每个产品有 4 个属性,例如:

{
   Code:01, 
   Description: "blue pen", 
   IVA: "19", 
   Price: "2.99"
}

好的,但是根据登录的用户,oData 之前的业务逻辑想要向我发送更多信息(例如 editable sub 属性):

{
   Code: {value:01, editable:false}, 
   Description: {value:"blue pen", editable:false}, 
   IVA: {value:19, editable:true}, 
   Price: {value:"2.99", editable:true}
}

(我无法在这种模式下发送新信息,我只有实体集和属性...)

在 EDM 中映射可编辑信息的正确方法是什么?一个新的 属性??

您可以通过创建具有值和可编辑属性的 ComplexType 来实现此目的。因此,您的实体的属性将引用 ComplexType。