我需要在编译时查询既不知道也不存在的表,通过odata发布表,然后将其提供给用于CRUD的silverlight客户端。
使用动态类型的PCO或ExpandoObject来实现这一点会很棒,但这似乎不起作用(如可疑)。
我想知道是否有接口允许我在行级执行类型映射和序列化,所以我会动态地获取数据行并在服务器端往返它的值。也许PCO的界面可以“帮助”,或者动态创建属性getter / setter。我也在运行时动态创建上下文类,但这有点难看。
然后 - 在客户端,使用odata feed做同样的事情,我在这里有一个解决方案,但它不足以与世界分享。
答案 0 :(得分:0)
EF不提供任何“动态”方法,也不提供任何简单的方法来创建新表并将其添加到映射中。另一个问题是WCF数据服务如何与不断变化的数据协同工作 - 我相信它也不受支持。
如果您想要动态更改结构(添加表,列等),请使用一些元数据模型,而不是为每个实体创建新表。元数据模型通常具有类似具有公共属性的表和具有属性名称和值的键值对的相关表。它可以进一步扩展到更复杂的场景,但它是实现这一目标的唯一方法。而不是在EF中进行映射而是将您的实体类型作为数据。