3.2.2 创建数据上下文类

1. 设置数据上下文类的名字与web.config中的连接字符串名字一致

<connectionStrings>
    <add name="TestContext" providerName="System.Data.SqlClient" 
connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=TestContext;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\TestContext.mdf" /> </connectionStrings>

    在以上链接字符串中,通常保持“name”、“Initial Catalog”和“AttachDBFilename”三个名字一致。其中name为服务器连接中数据连接的名字,Initial Catalog为localdb数据库服务器上的数据库名字,AttachDBFilename为App_Data文件夹下的数据文件名字。

2. 在数据上下文类中指定所采用的连接字符串

      在第2章使用支架添加控制器时,vs会自动帮我们创建数据上下文类,它在EF Code First开发模式下非常重要,主要用来追踪与识别对象的变更追踪。少了这个类别,Entity Framework就完全无法运作。

      自动添加的数据上下文类代码如下。

复制代码
    public class MvcGuestbookContext : DbContext
    {
        public MvcGuestbookContext()
            : base("name=DefaultConnection")
        {
        }

        public DbSet<Guestbook> Guestbooks { get; set; }
    }
复制代码

      构造函数中的DefaultConnection为连接字符串的名字,这个连接字符串必须存储在web.config中。DbSet<Guest>类型的Guestbooks变量,代表的是Guestbook这个类型的数据库集合对象。你可以把Guestbooks属性想象成一个数据库表格,然后把该集合中的每个Gustbook对象想象成是数据表中一条一条的数据。

3. 设置模型为只读

      如果希望将Guestbook数据模型被声明成只读,不让应用程序对其写入任何数据,那么可以修改数据上下文类,让DbSet集合属性只提供get实体。

复制代码
    public class MvcGuestbookContext : DbContext
    {
        public MvcGuestbookContext()
            : base("name=DefaultConnection")
        {
        }

        public DbSet<Guestbook> Guestbooks
        {
            get { return Set<Guestbook>(); }
        }
    }
复制代码

 

posted @ 2015-09-28 14:28  RunningYY  阅读(1447)  评论(0编辑  收藏  举报