实体框架 – EF Codefirst和RDLC Reports
发布时间:2020-12-15 19:47:34 所属栏目:asp.Net 来源:网络整理
导读:我正在使用EF 6开发一个MVC4 Web应用程序.我正在使用EF代码第一种方法(在一个全新的数据库上).所以我有我在EF中使用的模型类. 现在我需要创建一些RDLC报告.为此,我需要创建一个数据集.那么如何使用我的模型类创建数据集呢?我需要携带到数据集的模型类之间存
我正在使用EF 6开发一个MVC4 Web应用程序.我正在使用EF代码第一种方法(在一个全新的数据库上).所以我有我在EF中使用的模型类.
现在我需要创建一些RDLC报告.为此,我需要创建一个数据集.那么如何使用我的模型类创建数据集呢?我需要携带到数据集的模型类之间存在关系. 我的最终目标是使用我的ef模型设计和填充数据到我的报告. 在Adance感谢 解决方法
通常EF不支持DataSet.如果要使用加载了EF的数据填充DataSet,那么您必须为此提供自己的功能.这里我举一个例子,说明如何从查询获得的结果中填充DataTable对象:
public static class IEnumerableExtensions { public static DataTable ToDataTable<TEntity>(this IEnumerable<TEntity> entities) { DataTable table = new DataTable(); IEnumerable<PropertyInfo> properties = typeof(TEntity) .GetProperties() .Where(p => !p.PropertyType.IsClass || p.PropertyType == typeof(string)) foreach(string propertyName in properties.Select( p => p.Name)) { table.Columns.Add(propertyName); } foreach(object item in entities) { List<object> propertiesValues = new List<object>(); foreach (PropertyInfo property in properties) { propertiesValues.Add(property.GetValue(item)); } table.Rows.Add(propertiesValues.ToArray()); } return table; } } 您可以使用以下扩展方法: DataTable table = context.People.ToDataTable(); 如果要在表之间实现关系,那么您必须执行的逻辑将更加复杂.您应该使用DataTable对象的ChildRelations属性将它们与关系绑定.然后您可以将DataTable对象插入到DataSet中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – Kendo Grid Edit InLine Custom Validation
- 通过LAN调试ASP.NET云项目
- asp.net-mvc-3 – 坚持使用asp.net mvc 3.0脚手架,以防多对
- asp.net-mvc – ASP.NET MVC3 View模型不是null,但在发回Co
- 当用户使用ASP.NET应用程序中的Entity Framework 4和VB.NET
- RegisterServices中的NinjectWebCommon绑定在WebApi中不适用
- tsql – “无法更改具有Command对象作为其源的Recordset对象
- 在ASP.NET C中将byte []流式传输到Image
- asp.net-mvc-3 – ViewBag/ViewData生命周期
- asp.net-web-api – 在asp.net web api中有两个参数的方法