如何申請表區分顯示 數據?當你調用return View(db.Students.ToList())
如在鏈接的 例如,應用如何知道在 student表,而不是在報名表看?
的db.Students
一部分來自實體框架。
閱讀你發佈的鏈接中的「創建數據庫上下文」一節。
你會發現下面的代碼有:
using System;
using System.Collections.Generic;
using System.Data.Entity;
using ContosoUniversity.Models;
using System.Data.Entity.ModelConfiguration.Conventions;
namespace ContosoUniversity.Models
{
public class SchoolContext : DbContext
{
public DbSet<Student> Students { get; set; }
public DbSet<Enrollment> Enrollments { get; set; }
public DbSet<Course> Courses { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
}
這將設置數據庫上下文,這基本上是實體框架的「設置」,從那裏知道它映射到數據庫表其C#類。
所以db.Students
(從你的問題)實際上是一個DbSet<Student>
。
實體框架的默認約定如下所示:它嘗試將類映射到具有相同名稱的表。
通常情況下,它會在Student
類映射到一個名爲Students
(使用複數)表,但你可以改變/重寫這些約定......他們也是在這個例子一樣,在這條線:
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
這也在教程中直接在上面的代碼中解釋。從教程
引用:
此代碼創建DbSet
屬性爲每個實體組。在實體 框架術語中,實體集合通常對應於 數據庫表格,並且實體對應於表格中的行。
OnModelCreating
方法中的聲明可以防止將來自 的表名複數化。如果你不這樣做,將生成的表將被命名爲 Students
,Courses
和Enrollments
。相反,表名 將是Student
,Course
和Enrollment
。開發人員不同意 表名是否應該複數化。本教程使用單數形式 ,但重要的一點是您可以選擇 您喜歡的任何形式,包括或省略此行代碼。
你的意思是多個_tables_或多個_databases_?該表在「SELECT」語句(或您的實體模型)中指定。數據庫在連接字符串中指定(在您的示例中爲'myDatabase') –
引用表是特定查詢('SELECT','INSERT','UPDATE','DELETE'等)的一部分,而不是連接字符串的組件。如果您需要查詢或命令聲明方面的幫助,請將其包含在您的問題中。 – HackedByChinese
已編輯。請參閱上文 – jpo