1

查詢特定的表我是新來的Visual Studio MVC3,並嘗試連接到一個數據庫。我在web.config文件我的連接字符串:在C#中的Visual Studio數據庫

添加名稱= 「CON」 的connectionString =「數據源= 190.190.200.100,1433;網絡庫= DBMSSOCN;初始目錄= MyDatabase的; 用戶ID =名爲myUsername;密碼= MYPASSWORD;」 providerName =「System.Data.SqlClient」

但是,服務器有多個表。如何/將在哪裏指定查詢數據庫時使用哪個表?編號:
例如,我正在查看this example。應用程序如何區分顯示數據的表格?當你調用return View(db.Students.ToList())如在鏈接的例子中,應用如何知道在學生的表,而不是在報名表看?

+4

你的意思是多個_tables_或多個_databases_?該表在「SELECT」語句(或您的實體模型)中指定。數據庫在連接字符串中指定(在您的示例中爲'myDatabase') –

+0

引用表是特定查詢('SELECT','INSERT','UPDATE','DELETE'等)的一部分,而不是連接字符串的組件。如果您需要查詢或命令聲明方面的幫助,請將其包含在您的問題中。 – HackedByChinese

+0

已編輯。請參閱上文 – jpo

回答

2

如何申請表區分顯示 數據?當你調用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方法中的聲明可以防止將來自 的表名複數化。如果你不這樣做,將生成的表將被命名爲 StudentsCoursesEnrollments。相反,表名 將是StudentCourseEnrollment。開發人員不同意 表名是否應該複數化。本教程使用單數形式 ,但重要的一點是您可以選擇 您喜歡的任何形式,包括或省略此行代碼。

相關問題