2011-04-08 93 views
0

我需要在编译时查询既不知道也不存在的表,通过odata发布表,然后将其提供给Silverlight客户端用于CRUD。动态查询 - Expando /动态对象类型

使用动态类型或ExpandoObject类型的PCO来获得这个效果会很棒,但这似乎不起作用(如怀疑)。

我想知道是否有接口,将允许我在行级别执行类型映射和序列化,所以我会动态地采取数据行和往返它的值在服务器端。也许是PCO的“帮助”界面,或者是动物创造的属性获取者/设置者。我也在运行时动态创建上下文类,但这有点难看。

然后 - 在客户端,与odata feed做同样的事情,我在这里有一个解决方案,但它不足以与世界分享。

回答

0

EF不提供任何“动态”方法以及任何简单的方法来让您创建一个新表并将其添加到映射。另一个问题是WCF数据服务如何处理不断变化的数据 - 我相信它也不受支持。

如果您想要动态更改结构(添加表,列等),请使用某些元数据模型,而不是为每个实体创建新表。元数据模型通常具有类似于具有公共属性的表格和具有属性名称和值的键值对的相关表格之类的东西。它可以扩展到更复杂的场景,但它是如何实现这一点的唯一方法。而不是EF中的映射,将实体类型作为数据。