DB에는 PackagingInfo
테이블이 있습니다. 나는 Package
클래스와 ShopEntities : DbContext
.
// Entity (ex. Package.cs)
[Table("PackagingInfo")]
public class Package
{
public decimal PackageID { get; set; }
public decimal Title { get; set; }
public decimal Cost { get; set; }
public bool isFree { get; set; }
}
// Entity Context (ex. ShopEntities.cs)
public class ShopEntities : DbContext
{
public DbSet<Package> Packages { get; set; }
}
// Controller Action (ex. HomeController.cs)
public ActionResult Index()
{
ShopEntities _db = new ShopEntities();
var q = _db.Packages.ToList();
return View(q);
}
_db
컨텍스트를 인스턴스화하고 Packages
속성을 검사 한 후 예외가 발견 된 경우 :
The entity type Package is not part of the model for the current context.
필자는이 질문을 편집하고 다시 열어달라고 요청했습니다. 여기서 주목할만한 주석 대신에 EDMX 파일에서 테이블 매핑이 수행되는 모델 첫 번째 접근법에서 상황이 발생하기 때문입니다.
모델 브라우저 창은 모델 및 저장소 엔티티 유형의 Package
를 보여 주며 엔티티의 테이블 매핑은 테이블 열에 올바르게 매핑 된 각 속성을 보여줍니다. 이는 주석 코드 - 첫 번째 스타일에 의해 수행 된 것과 동일한 매핑입니다.
명시 적으로 추가 “DatabaseGeneratedâ€
세트에 속성 “identityâ€
데이터베이스에 컬럼의 값을
[DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.Identity)]
십진수 데이터 유형의 정밀도를 지정하십시오. 기본적으로 10 진수 데이터 형식의 경우 10 진수 뒤에 두 개의 숫자가 있다고 가정하기 때문입니다. 0으로 설정해야합니다.
modelBuilder.Entity<User>().Property(x => x.ID).HasPrecision(16, 0);