C# 从SQL表处理mvc中的多个字段

C# 从SQL表处理mvc中的多个字段,c#,sql-server,asp.net-mvc,C#,Sql Server,Asp.net Mvc,在我拥有的4个表中,有3个包含类似的字段(client、policyno、policytype..),但数据不同。但是,另一个表有非常不同的字段(客户、性别、电话、出生日期等)。我的视图中有一个搜索框,它利用电话号码显示所有3个表中的相关记录。不幸的是,我无法处理第四个表的字段。不断返回错误 System.IndexOutOfRangeException: 'PolicyNo' 我的模型: public class TableModels { [Key] [Da

在我拥有的4个表中,有3个包含类似的字段(client、policyno、policytype..),但数据不同。但是,另一个表有非常不同的字段(客户、性别、电话、出生日期等)。我的视图中有一个搜索框,它利用电话号码显示所有3个表中的相关记录。不幸的是,我无法处理第四个表的字段。不断返回错误

System.IndexOutOfRangeException: 'PolicyNo'
我的模型:

    public class TableModels
    {
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }
    public string Client { get; set; }
    public string PolicyNo { get; set; }
    public short? PolicyType { get; set; }
    public string Telephone { get; set; }

    //Health
    public DateTime? DOB { get; set; }

    public string Sex { get; set; }
    public string DepMemberNumber { get; set; }




       protected TableModels ReadValue(SqlDataReader reader)
    {
        TableModels obj = new TableModels();

        if (reader["ID"] != DBNull.Value)
        {
            obj.ID = (int)reader["ID"];
        }

        if (reader["Client"] != DBNull.Value)
        {
            obj.Client = (string)reader["Client"];
        }

        if (reader["PolicyNo"] != DBNull.Value)
        {
            obj.PolicyNo = (string)reader["PolicyNo"];
        }

        if (reader["PolicyType"] != DBNull.Value)
        {
            obj.PolicyType = (short)reader["PolicyType"];
        }
在受保护的TableModel类上返回错误

如有任何建议,将不胜感激

视图:

@模型IEnumerable

           @foreach (var item in Model.OrderByDescending(m => m.Client))
                {

                    <tr>
                        <td>
                            @Html.DisplayFor(modelitem => item.Client)
                        </td>

                        <td>
                            @Html.DisplayFor(modelitem => item.Telephone)
                        </td>
                        <td>
                            @Html.ActionLink("Details", "Details", new { id = item.Telephone })
                        </td>
                    </tr>
                }
@foreach(Model.OrderByDescending(m=>m.Client)中的变量项)
{
@DisplayFor(modelitem=>item.Client)
@DisplayFor(modelitem=>item.Telephone)
@ActionLink(“详细信息”,“详细信息”,新的{id=item.Telephone})
}
控制器:

    public ActionResult Details(string id)
    {
        using (MainContext db = new MainContext())
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest);
            }

            List<SingleView> x1 = db.SingleViews.Where(a => a.Telephone == id).ToList();
            List<SingleViewM> x2 = db.SingleViewMs.Where(a => a.Telephone == id).ToList();
            List<SingleViewWst> x3 = db.SingleViewWsts.Where(a => a.Telephone == id).ToList();
            List<PensionsView> x4 = db.PensionsViews.Where(a => a.Telephone == id).ToList();
            List<Health> x5 = db.Health.Where(a => a.Telephone == id).ToList();

            SingleModel objview = new SingleModel();
            objview.USSD = x1;
            objview.Mombasa = x2;
公共操作结果详细信息(字符串id)
{
使用(MainContext db=newmaincontext())
{
if(id==null)
{
返回新的HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest);
}
List x1=db.singleview.Where(a=>a.Telephone==id.ToList();
List x2=db.SingleViewMs.Where(a=>a.Telephone==id.ToList();
List x3=db.SingleViewWsts.Where(a=>a.Telephone==id.ToList();
List x4=db.PensionsViews.Where(a=>a.Telephone==id.ToList();
List x5=db.Health.Where(a=>a.Telephone==id.ToList();
SingleModel objview=新SingleModel();
objview.USSD=x1;
objview.Mombasa=x2;

如果您在控制器和视图中提供代码,我认为会很有帮助。有什么帮助吗?