EF 에서 CodeFirst 모드 만 들 기
EF 4.1 에 서 는 Code First 를 지원 하기 시작 했다.이런 방식 은 분야 디자인 모델 에서 매우 유용 하 다.Code First 모드 를 사용 하면 영역 디자인 에 전념 할 수 있 습 니 다. 필요 에 따라 한 분야 의 대상 에 게 클래스 집합 을 만 들 수 있 습 니 다. 먼저 데이터 베 이 스 를 디자인 한 다음 에 데이터 베이스 에 따라 클래스 를 디자인 할 수 있 습 니 다. Code - first APis 는 클래스 와 설정 을 바탕 으로 데이터 베 이 스 를 만 들 것 입 니 다.
워 크 플 로 는 영역 클래스 와 컨 텍스트 클래스 를 먼저 작성 합 니 다. 영역 클래스 에 맵 조건 을 추가 로 설정 합 니 다. - > F5 실행 프로그램 - > Code - First API 를 누 르 면 새로운 데이터 베 이 스 를 만 들 거나 영역 클래스 와 존재 하 는 데이터 베 이 스 를 매 핑 합 니 다. - > 테스트 데 이 터 를 데이터베이스 에 추가 합 니 다. - > 마지막 으로 프로그램 을 실행 합 니 다.
namespace Models
{
using System;
using System.Collections.Generic;
using System.Web.Script.Serialization;
///
///
///
public partial class Books
{
public Books()
{
this.OrderBooks = new HashSet();
this.TemporaryCarts = new HashSet();
}
///
/// Id
///
public int Id { get; set; }
///
///
///
public string Title { get; set; }
///
///
///
public string Author { get; set; }
///
/// Id
///
public int PublisherId { get; set; }
///
///
///
public System.DateTime PublishDate { get; set; }
///
///
///
public string ISBN { get; set; }
///
///
///
public decimal UnitPrice { get; set; }
///
///
///
public string ContentDescription { get; set; }
///
///
///
public string TOC { get; set; }
///
/// Id
///
public int CategoryId { get; set; }
///
///
///
public int Clicks { get; set; }
///
///
///
public virtual Category Category { get; set; }
///
///
///
public virtual Publisher Publisher { get; set; }
///
///
///
[ScriptIgnore]
public virtual ICollection OrderBooks { get; set; }
///
///
///
[ScriptIgnore]
public virtual ICollection TemporaryCarts { get; set; }
}
}
[위 에 이렇게 쓰 여 있 는 실 체 는 데이터베이스 시트, 필드 에 한 글자 도 다 르 지 않 게 대응 하여 쓰 여 있 습 니 다. 속성 이름과 데이터베이스 에 있 는 필드 이름 이 일치 하지 않 으 면 특성 제어, 메 인 키, 표 의 이름 을 통 해 제어 해 야 합 니 다.] EF6 가 매 핑 할 때 속성 이름 이 Id 이 므 로 기본 키 를 사용 합 니 다. 그렇지 않 으 면 key 를 추가 하면 지정 합 니 다. 예 를 들 어:
///
///
///
[Table("Books")]
public partial class Books
{
public Books()
{
this.OrderBooks = new HashSet();
this.TemporaryCarts = new HashSet();
}
///
/// Id
///
[Key]
public int Id { get; set; }
///
///
///
public string Title { get; set; }
///
///
///
public string Author { get; set; }
///
/// Id
///
public int PublisherId { get; set; }
///
///
///
public System.DateTime PublishDate { get; set; }
///
///
///
public string ISBN { get; set; }
///
///
///
public decimal UnitPrice { get; set; }
///
///
///
public string ContentDescription { get; set; }
///
///
///
public string TOC { get; set; }
///
/// Id
///
public int CategoryId { get; set; }
///
///
///
public int Clicks { get; set; }
///
///
///
public virtual Category Category { get; set; }
///
///
///
public virtual Publisher Publisher { get; set; }
///
///
///
[ScriptIgnore]
public virtual ICollection OrderBooks { get; set; }
///
///
///
[ScriptIgnore]
public virtual ICollection TemporaryCarts { get; set; }
}
3. 데이터베이스 에 대응 하 는 실 체 를 모두 쓴 후, 상하 문 조작 클래스 를 쓰기 시작한다
namespace Models.db_set
{
///
///
///
public class db_context:DbContext
{
//
public db_context():base("strConn")
{
}
public DbSet Books { get; set; } //
public DbSet Category { get; set; } //
public DbSet Order { get; set; } //
public DbSet OrderBook { get; set; } //
public DbSet Publisher { get; set; } //
public DbSet TemporaryCart { get; set; } //
public DbSet User { get; set; } //
public DbSet UserRole { get; set; } //
public DbSet UserState { get; set; } //
}
}
4. 컨 텍스트 클래스 를 작성 한 후 마지막 으로 설정 파일 을 놓 아 데이터 베 이 스 를 연결 합 니 다. Web. config 의 노드 에 쓰기:
이렇게 EF Code Frist 는 만들어 진 셈 이다.
5. 웹 디 스 플레이 계층 호출 또는 3 층 에서 사용, var db = new dbcontext();var list = db. books. ToList () 를 발견 할 수 있 습 니 다.이 ToList ();방법 이 없 으 면 누 를 수 없습니다. 왜 냐 면 이 방법 이 없 기 때 문 입 니 다. 인용 이 추가 되 지 않 았 음 을 설명 합 니 다. 현재 이 라 이브 러 리 에 인용 을 추가 하여 현재 항목 을 탐색 하 는 \ \ packages \ \ EntityFramework. 6.2.0 \ libet 40 디 렉 터 리 에 EntityFramework. dll 과 EntityFramework. sql Server. dll 두 라 이브 러 리 파일 을 누 를 때 방법 을 누 를 수 있 습 니 다.이 럴 때 는 마음대로 비 벼 도 된다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Models;
namespace UI.Controllers
{
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
var db = new Models.db_set.db_context();
var list = db.Books.AsNoTracking().ToList();
return View(list);
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.