gpt4 book ai didi

c# - Entity Framework 4.0 CTP5 一对一映射

转载 作者:太空宇宙 更新时间:2023-11-03 16:49:01 24 4
gpt4 key购买 nike

您好,我正在使用 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");
}
}

我的 User.UserType = null 做错了什么?

我到底怎么才能把它映射到工作中!?

我在这里死了 3 天来解决它。

我正在使用 DevArt Connection 6.058...一些东西Oracle 10g,C# EntityFramework 4.0

最佳答案

您已经在 User 和 UserType 之间设置了一个必需的关联,因此您不能拥有没有 UserType 的 User 对象(即 User.UserType == null)。为此,您需要对对象模型和流畅的 API 进行 2 处更改:

1.将UserTypeId属性的类型改为int?:

public int? UserTypeId { get; set; }

2. 从您的 Fluent API 中删除以下代码:HasRequired(p => p.UserType).WithMany().IsIndependent().Map(m => m.MapKey...

您不需要任何这些东西。一切都将由 Code First 根据您的约定进行配置。

关于c# - Entity Framework 4.0 CTP5 一对一映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4782847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com