使用Microsoft Entity Framework和MVC,我有以下要求,实现一个实体,其中某些属性属于sql server DB中的表,其他属性从同一个表上的XML列加载,我想创建属性以便将存储在XML中的一些值暴露给MVC视图和控制器。
假设我有实体“笔记本电脑”,从像处理器和ram这样的表中加载列;为了灵活性,这个表有一个包含更多数据的XML列,我想使用“Laptop”实体的属性公开XML中的一些值,如dvd,bluetooth,usb等。
我尝试使用名为“Laptop”的部分类,尝试声明并添加用于维护其他属性的例程,但这不起作用,在此分部类中声明的其他属性在上层的“笔记本电脑”实体,如MVC。
我的问题与如何从XML中提取值无关,更多地依赖于如何将实体与自定义属性组合,实体是自动创建更新模型,我需要一种方法来定义其他地方的其他属性,在设计时不会被IDE自动删除,因此我首先想到的是部分类。
有什么想法吗?
答案 0 :(得分:0)
您需要某种dynamic
对象,因此请尝试ExpandoObject类。您可能必须将ExpandoObject
与LINQ表达式树结合使用,以获取XML列中的数据并将其转换为fieldname
,fieldvalue
数组或其他动态对象。
Here's an example可能适合您的用例: