【问题标题】:how to show a "View" Table (SQL Table) in ASP.NET?如何在 ASP.NET 中显示“视图”表(SQL 表)?
【发布时间】:2017-03-08 03:05:06
【问题描述】:

我知道如何在 ASP.NET 中显示 REAL 表,例如

public ActionResult Index()
{
    var s = db.StaffInfoDBSet.ToList();
    return View(s);     
}

在viewController中...

@model IEnumerable<TrainingHourSystem.Models.StaffInfo>

    <table class="table">
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.StaffId)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.UnitId)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.GradeId)
            </th>

但我不知道如何在 ASP.NET 中显示“视图”表(SQL 表)...

【问题讨论】:

  • 什么是视图表?
  • 选中的表(作为视图),但不是真正的表...
  • 您可以像普通表格一样选择“查看表格”。与“Real Table”没有什么不同
  • 如果要显示列的子集,可以在 LINQ 表达式中使用 Select 方法,仅投影这些列并将其传递给视图(使用视图模型)跨度>
  • 它在我创建 MVC5 控制器时显示错误消息。 '无法检索 'TSystem.Models.YSummary' 的元数据。在模型生成期间检测到一个或多个验证错误:TSystem.Service.YSummary:EntityType 'YSummary' has no key defined。定义此 EntityType 的键。 YSummaryDBSet:EntityType:实体集“YSummaryDBSet”基于没有定义键的类型“YSummary”。

标签: c# mysql asp.net asp.net-mvc


【解决方案1】:

你可以像这样创建一个数据类

 [Table("your View table name", Schema = "your schema name")]
    public class vTest
    {
        [Key]
        public int TestAutoId{ get; set; }
        public string TestName{ get; set; }
        public string TestDescription { get; set; }
    }

关键注释是说这个视图表有主键。但是视图表的物理主键不会在那里

【讨论】:

    【解决方案2】:

    您可以像普通表一样在数据库上下文中添加该视图。
    您收到的错误可能是因为您的视图可能没有主键。
    Entity Framework 中不可能有没有主键的表

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多