如何在实体框架中处理动态表
我们有如下要求:
对于每个客户将上传具有不同列的不同文件,列名称从一个客户到另一个客户都不同,并且列数也发生变化。
对于那个,我们将把所有详细信息存储在一个表中,如
column1,column2,column3............columnN
并将存储列映射到其他表
第一个名称=列1
第二个名称=列2
像这样,向上这是可以的,但是如果我们使用实体框架,强类型在这种情况下将如何工作。
在前端将显示组合框,它将显示所有客户端,我们将在网格中显示数据
这里重要的是我们必须显示最终用户列名称而不是我们的列名称,例如column1,column2
输出应该是如下
Combox 框 ---- 客户端名称
Grid
First name Second Name
---------------------------------
Harish Kumar
we have requirement like below :
For each customer will upload different files having different columns, column names are different from one client to another client and change in the number columns also.
For that one we will stored all the details in one table like
column1,column2,column3 ...........columnN
And will store column mapping some other table
First name=column1
Second Name=Column2
like this, up to this is ok ,but if we are using entity framework how stronly types will work in this case.
In the front end will show the combox box which will display all the client and we will show the data in the grid
Here is important thing is we have to show the End user column name instead our column name like column1,column2
Out put sholud be like below
Combox box ---- Client name
Grid
First name Second Name
---------------------------------
Harish Kumar
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于此类应用程序,EF 不是一个好的选择。它将准确映射数据库中的内容 - 一个具有 Column1、
Column2
等属性的大实体,以及一个具有诸如 ColumnName 等属性的实体,属性名称
。这都是因为 EF 不支持高级数据驱动映射。您的 UI/逻辑将需要一些逻辑来正确解释这些数据,此外,它还必须将用户输入和操作正确转换回 EF 可理解的形式。
恕我直言,使用 EF 是有开销的,直接使用 ADO.NET。另请检查 SharePoint,因为它已经实现了此功能。
EF is not good choice for this type of application. It will map exactly what you have in database - one big entity with
Column1
,Column2
, etc. properties and one entity with properties likeColumnName
,PropertyName
. That is all because EF doesn't support advanced data driven mapping.Your UI / logic will need some logic to correctly interpret these data and moreover it will also have to correctly transform user input and actions back to EF understandable form.
Imho using EF for this is overhead, use ADO.NET directly. Also check SharePoint because it has this already implemented.