Salut je suis en utilisant CTP5 à la carte entre deux entités de ce genre:Entity Framework 4.0 CTP5 One to One Mapping
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; }
}
// voici les configurations
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");
}
}
Que dois-je faire mal mon utilisateur .UserType = null?
Comment diable puis-je mapper ceci au travail !?
Je meurs ici pendant 3 jours pour que ça marche.
J'utilise DevArt Connection 6,058 ... quelque chose Oracle 10g, C# 4.0 EntityFramework
Salut, merci pour la réponse, mais cela ne fonctionne pas pour une raison quelconque. – IamStalker
Pour une raison quelconque, quand je fais Inclure, il construit la requête correcte pour récupérer les bonnes entités, mais quand je fais un simple FindById (int id), il échoue et renvoie UserType == null. Désolé pour le commentaire tardif. – IamStalker
Salut, j'ai résolu ce problème en ajoutant le ((IObjectContextAdapter) this) .ObjectContext.ContextOptions.ProxyCreationEnabled = true; Merci beaucoup pour votre réponse, pouvez-vous s'il vous plaît me référer à anyu des blogs que vous avez écrit avec les problèmes de cartographie? – IamStalker