我在 DB 中有一个表,我想用 oData 显示/编辑数据。我不想简单地使用 EntitySet 公开行,因为我的业务逻辑将信息添加到每行的每个字段:
例子。我在数据库中有一个包含 3 行的表:
k c1 c2 c3 c4
----------------------
01 a b d e
02 f g h i
03 l m n o
04 p q r s
用户 A 可以:
- 每个字段的完全控制(创建-读取-更新-删除)(不修改-编辑键,但可以删除行)
用户 B 可以:
- 仅编辑第二行
用户 C 可以:
- 仅编辑 m、n 和 r
如何使用 oData 发送这种复杂性?
- 如何识别登录的用户?(http GET oData EntitySet 标头中的 sessionId 字符串?)
- 在元数据中,我可以公开与数据的不同类型的交互吗?
- 如果我想指定精确的 CRUD 信息 (UserB),我该如何传递信息?(使用复杂类型?)
这些是我的问题。我喜欢 oData,尤其是元数据的完整描述性概念,但它似乎与我的数据访问复杂性不匹配。