【发布时间】:2016-04-22 19:33:15
【问题描述】:
我创建了一个 MVC 项目。有一个默认视图和控制器。有一个模型已扩展为涵盖两个真实表和一个视图(db 视图)。在对数据进行排序之后,需要显示该视图和至少一个表。我只看到在线创建模型的“简单”示例;我不确定要搜索什么词。所以,我在自己的文件中有一个类,它定义了 db-view 中的列
using System.Data.Entity;
namespace XYZ_dbo.Models {
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
using System.Linq;
using System.Text;
[Table("dbo.DockItemsByDept")]
public partial class DockItemsByDept
{
public int Id { get; set; }
[Required]
[StringLength(128)]
public string Name { get; set; }
public int Dept { get; set; }
public int Code { get; set; }
}
}
我有一个引用此类的模型定义:
using System.Data.Entity;
namespace XYZ.Models
{
public partial class XYZModel : DbContext
{
public XYZModel()
: base("name=XYZModel")
{
}
public virtual DbSet<DockItemsByDept> DockItemsByDept { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<DockItemsByDept>()
.Property(e => e.Id);
modelBuilder.Entity<DockItemsByDept>()
.Property(e => e.Name)
.IsUnicode(false);
modelBuilder.Entity<DockItemsByDept>()
.Property(e => e.Dept);
modelBuilder.Entity<DockItemsByDept>()
.Property(e => e.Code);
}
}
}
我可以进入index.cshtml 视图并说
@model IEnumerable<ITG_Calendar_Reservations.Models.DockItemsByDept>
<div class="content">
@foreach (var log in Model)
{
<p>@log.Name</p>
}
</div>
但我只是得到了数据库生成的默认排序。我希望这个“视图”数据按Code 字段然后Name 字段排序,但我不知道应该在哪里应用这样的操作或过滤器。我认为这将在模型中,但我没有看到它应该去哪里,当我搜索答案时我没有找到任何有用的东西。
想法?
【问题讨论】:
-
您的
XYZModel并不是真正的模型,而是用于管理程序和数据库之间模型状态的上下文。你可能想称之为XYZContext。它可能会让事情更容易理解。 -
嗯,好的。我根本不会在这个问题上与你辩论。 Visual Studio 将其称为“模型”,并在设置初始数据库连接时为其命名。
标签: c# .net asp.net-mvc entity-framework