2011-01-24 2 views
2

안녕 매핑 하나에 4.0 CTP5 : // 여기에엔티티 프레임 워크 난 CTP5 그런 두 엔티티 사이에 매핑하는 데 사용하고 하나

public class User 
{ 
    public int Id { get; set; } 

    public string UserName { get; set; } 
    public string Password { get; set; } 
    public bool IsManager { get; set; } 
    public decimal Credit { get; set; } 
    public int CreditAlertCount { get; set; } 
    public decimal TelPrice { get; set; } 
    public decimal CellPrice { get; set; } 
    public DateTime InsertDate { get; set; } 
    public IList<string> PhoneList { get; set; } 
    public int UserTypeId { get; set; } 
    public virtual UserType UserType { get; set; } 
} 

public class UserType 
{ 
    public int Id { get; set; } 
    public int UserLevel { get; set; } 
    public string TypeDescription { get; set; } 
} 

내가 잘못 내 사용자합니까 무엇 구성

public class UserConfig : EntityTypeConfiguration<User> 
{ 
    public UserConfig() 
    { 

     HasKey(c => c.Id); 
     Property(c => c.Id).HasDatabaseGenerationOption(DatabaseGenerationOption.Identity).HasColumnName("ID"); 
     Property(c => c.InsertDate).HasDatabaseGenerationOption(DatabaseGenerationOption.Computed).HasColumnName("INSERT_DATE"); 
     Property(c => c.IsManager).HasDatabaseGenerationOption(DatabaseGenerationOption.Computed).HasColumnName("IS_MANAGER"); 
     Property(c => c.UserName).HasMaxLength(25).IsRequired().HasColumnName("USER_NAME"); 
     Property(c => c.Password).HasMaxLength(25).IsRequired().HasColumnName("USER_PASSWORD"); 
     Property(c => c.CellPrice).IsRequired().HasColumnName("CELL_PRICE"); 
     Property(c => c.TelPrice).IsRequired().HasColumnName("TEL_PRICE"); 
     Property(c => c.CreditAlertCount).IsRequired().HasColumnName("CREDIT_ALERT_COUNT"); 
     Property(c => c.Credit).IsRequired().HasColumnName("CREDIT"); 
     Property(c => c.UserTypeId).IsOptional().HasColumnName("USER_TYPE_ID"); 

     /*relationship*/ 
     HasRequired(p => p.UserType).WithMany().IsIndependent().Map(m => m.MapKey(p => p.Id, "USER_TYPE_ID")); 

     ToTable("CRMC_USERS", "GMATEST"); 
    } 
} 

public class UserTypeConfig : EntityTypeConfiguration<UserType> 
{ 
    public UserTypeConfig() 
    { 
     /*Identity*/ 
     HasKey(c => c.Id); 
     Property(c => c.Id).HasDatabaseGenerationOption(DatabaseGenerationOption.Identity).HasColumnName("ID"); 

     /*simple scalars*/ 
     Property(s => s.TypeDescription).IsRequired().HasColumnName("DESCRITPION"); 
     Property(s => s.UserLevel).IsRequired().HasColumnName("USER_LEVEL"); 

     ToTable("CRMC_USER_TYPES", "GMATEST"); 
    } 
} 

입니다 .UserType = null?

어떻게하면지도로 작동합니까?

3 일 동안 여기서 죽어 가고 있습니다.

내가 DevArt 연결 6.058을 사용하고 있습니다 ... 어떤 것을 오라클 10g, C# EntityFramework 4.0

답변

0

당신했습니다를 셋업 사용자 및 UserType을 사이 협회는 따라서 당신이 사용자 개체를 가질 수 없습니다 필요없이 UserType (즉, User.UserType == null). 당신의 유창한에서

public int? UserTypeId { get; set; }

2.Remove 코드 :

1.Change UserTypeId 속성의 유형 int?에 : 당신이 당신의 객체 모델과 유창한 API에 2 변경할 필요가 있다고 할 수있을하려면 읽는 API : HasRequired(p => p.UserType).WithMany().IsIndependent().Map(m => m.MapKey...

이러한 것들이 필요하지 않습니다. 컨벤션을 기반으로 모든 것이 Code First에 의해 구성됩니다.

+0

안녕하세요, 답변 주셔서 감사하지만 그것은 어떤 이유로 작동하지 않습니다. – IamStalker

+0

내가 포함 할 때 몇 가지 이유로 올바른 엔터티를 검색 할 수있는 올바른 쿼리를 작성하지만 간단한 FindById (int id) 할 때 실패하고 UserType == null을 반환합니다. 늦게 언급하여 죄송합니다. – IamStalker

+0

안녕하세요, ((IObjectContextAdapter) this를 추가하여이 문제를 해결했습니다.) .ObjectContext.ContextOptions.ProxyCreationEnabled = true; 답변 해 주셔서 대단히 감사합니다. 매핑 문제로 작성한 블로그 중 누구에게도 알려 주실 수 있습니까? – IamStalker