我在Table
有2个领域。根据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; }
// ...
}
要在视图中绑定值,我建议创建单独的ViewModelEntity,并为数据库操作使用Pure POCO类,它具有与表中相同的字段。