2012-10-21 2 views
1

Client 클래스가 정의되어 있습니다. Fluent API를 사용하여 열 이름을 정의하는 Mapping \ ClientMap.cs 파일도 있습니다. 그러나 ClientMap.cs 코드가 실행되는 것을 볼 수 없으므로 "호출"하는 방법을 모르겠습니다. 내가 아는모델 클래스 및 매핑

namespace CardNumbers.Data 
{ 
    public class Repository : DbContext, IRepository 
    { 
     public DbSet<Client> Clients { get; set; } 
     public DbSet<ClientOrder> ClientOrders { get; set; } 
     public DbSet<Reorder> Reorders { get; set; } 
     public DbSet<Operator> Operators { get; set; } 

아주 좋은 방법이 아닙니다,하지만 우리는 강사와 함께 응용 프로그램을 구축하고 어떻게는 다음과 같습니다

나는이 있습니다.

내 질문은 - Fluent API 코드가 런타임에 호출되도록하려면 무엇을 추가해야합니까?

미리 감사드립니다.

답변

1

유창 매핑이

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     //add fluent api code 
    } 

는 R처럼 "Repository"클래스의 맨 아래에 추가되어야합니다 eason 나는 저장소 패턴을 실제로 구현하고 있지 않다는 것을 저장소에 인용하고있다. 이것을 특정 DbContext로 정의한 다음 다중 컨텍스트를 취할 수있는 저장소를 가져야합니다. 저장소 구현에 관한이 글을 잘 읽어보십시오. http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application

+1

두 분 모두에게 고마움을 전하며, 저는 다시 디자인 할 것입니다, 운 좋게도 아직 많이 발전하지는 않았으므로 여전히 전환 할 수 있습니다. – Naomi

+0

다시 디자인했지만 지금은 전에 얻지 못했던 SQL Server 오류가 발생했습니다. – Naomi

+0

@Naomi - 해당 코드와 정확한 오류로 새로운 질문을 할 수 있습니까? –

2

당신은 (당신이 DbContext에 오버라이드 (override) 할 수있는 가상 메서드 인) 당신의 OnModelCreating 방법으로 직접하거나 당신의 매핑 코드를 삽입, 또는 다음 OnModelCreating 방법에서 호출되는 sepearte 구성 클래스에 배치해야합니다.

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<Client>().Property(p => p.Name).IsRequired(); 
} 

또는

다른 곳
protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Configurations.Add(new ClientConfiguration()); 
} 

:

public class ClientConfiguration : EntityTypeConfiguration<Client> 
{ 
    public ClientConfiguration() 
    {   
     this.Property(p => p.Name).IsRequired(); 
    } 
} 
+0

질문이 하나 더 있습니다 - 질문에 대답이 1 개만 허용됩니까? 답변 중 하나를 수락하려면 확인란을 클릭하면 다른 하나는 확인 표시를 잃게됩니다. – Naomi

+0

예, 사용자가 대답을 1 개만 받아 들일 수 있음 – devdigital

+0

재 설계 후이 오류가 발생합니다. InnerException : System.Data.SqlClient.SqlException HResult = -2146232060 메시지 = 연결을 설정하는 동안 네트워크 관련 오류나 인스턴스 관련 오류가 발생했습니다. SQL 서버. 서버를 찾을 수 없거나 액세스 할 수 없습니다. 인스턴스 이름이 올 바르고 SQL Server가 원격 연결을 허용하도록 구성되어 있는지 확인하십시오. (공급자 : SQL 네트워크 인터페이스, 오류 : 26 - 서버/인스턴스 지정 오류 지정) – Naomi

관련 문제