c# - 使用 `Entity Framework` 绑定`CSHTML` 中的动态字段
问题描述
我有 2 个字段Table
。根据Stored Procedure's
查询,它提供 4 个字段。在那,2个字段来自Table
和其他2个我无法Entity Framework
直接映射的动态字段。那么如何在CSHTML
.
以下是我尝试过的代码。
存储过程的查询
SELECT
ROW_NUMBER() Over (Order By Table.Id) SrNo
,Id
,Name
,'10000' Salary
FROM Table
控制器
MyModel model = new MyModel();
SqlParameter param1 = new SqlParameter("@Parameter",1);
model.lstdata = app.Database.SqlQuery<EntityName>("exec ProcedureName @Parameter", param1).ToList();
return View(model);
模型类
public class Model
{
public int Id { get; set; }
public string Name { get; set; }
public List<EntityName> lstData { get; set; }
public Model()
{
lstData = new List<EntityName>();
}
}
CSHTML
@foreach (var item in Model.lstdata)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.SrNo)
</td>
<td>
@Html.DisplayFor(modelItem => item.Id)
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Salary)
</td>
</tr>
}
实体名称
namespace Data
{
[Table("Table")]
public class EntityName
{
[Key]
public long Id { get; set; }
public string name { get; set; }
[NotMapped]
public int SrNo { get; set; }
}
}
请建议我从这个查询中得出一个最佳选择。
解决方案
试试下面的代码。尝试[NotMapped]
在您不想映射的属性上添加属性。
public class EntityName
{
// ...
[NotMapped]
public int SrNo { get; set; }
[NotMapped]
public int Salary{ get; set; }
// ...
}
推荐阅读
- c++ - VB.NET DLL中的C++ DLL函数复制
- reactjs - 将主组件状态传递给另一个组件错误
- outlook - 在 Outlook 中按“发送”按钮后如何添加通知窗口?
- spring-boot - 如何在 groovy 中使用 Spring 表达式语言(SpEL)?(每个春季调度程序crontab)
- angular - 需要在页面之间维护表单数据,而无需在 angular-ngrx 页面中向服务器/api 发送数据
- c# - 如何在父类的自定义用户控件中设置自定义验证错误模板的属性
- google-apps-script - 如何在 Google Sheet 中将多行单元格拆分为不同的行
- ios - 如何使 AVPlayerViewController 在不进行子类化的情况下自动旋转?
- c# - WPF DataTrigger 为 false,但不会恢复为以前的值
- python - 如何从具有其他变量的字符串中仅对大学名称进行子集化