DbSet class 與 EntityFramework

 

DbSet的特點:

1、DbSet的命名空間為System.Data.Entity

2、組件為EntityFramework.dll

DbSet是代表所有實體的集合

操作範例:

edmx diagram

 

POCO類別


//------------------------------------------------------------------------------
// <auto-generated>
//     這個程式碼是由範本產生。
//
//     對這個檔案進行手動變更可能導致您的應用程式產生未預期的行為。
//     如果重新產生程式碼,將會覆寫對這個檔案的手動變更。
// </auto-generated>
//------------------------------------------------------------------------------

namespace CKEdit.Models
{
    using System;
    using System.Collections.Generic;
    
    public partial class MyTab
    {
        public int Id { get; set; }
        public string title { get; set; }
        public string date { get; set; }
        public string context { get; set; }
    }
}

 

Customzied DbContext


//------------------------------------------------------------------------------
// <auto-generated>
//     這個程式碼是由範本產生。
//
//     對這個檔案進行手動變更可能導致您的應用程式產生未預期的行為。
//     如果重新產生程式碼,將會覆寫對這個檔案的手動變更。
// </auto-generated>
//------------------------------------------------------------------------------

namespace CKEdit.Models
{
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;
    
    public partial class CKEditContext : DbContext
    {
        public CKEditContext()
            : base("name=CKEditContext")
        {
            Database.SetInitializer(new DropCreateDatabaseAlways<CKEditContext>());
        }
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
    
        public virtual DbSet<MyTab> MyTab { get; set; }
    }
}

 

controller對DB的操作


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace CKEdit.Controllers
{
    public class HomeController : Controller
    {
        CKEdit.Models.CKEditContext db = new CKEdit.Models.CKEditContext();

        public ActionResult Index()
        {
            return View(db.MyTab.ToList());
        }

    }
}

 

参考資料:

System.Data.Entity 命名空間

DbContext 類別

DbSet<TEntity> 類別

QueryableExtensions 類別

[VS2010] ADO.NET Entity Framework 新功能:永續儲存無知物件 (Persistence-Ignorant Object) Overview