我首先使用 Entity Framework 4.3.1 代码。我的数据库中有 2 个表,其中列出了它们的列名:
状态表:
StatusID int
Status varchar(50)
请求状态表:
RequestStatusID int
RequestStatus varchar(50)
我有 2 节课:
public class Status : IEntity
{
public int Id { get; set; }
public string Name { get; set; }
public RequestStatus RequestStatus { get; set; }
}
public class RequestStatus : IEntity
{
public int Id { get; set; }
public string Name { get; set; }
public Status Status { get; set; }
}
我的数据库上下文类:
public class ICaseDbContext : DbContext
{
public DbSet<Status> Statuses { get; set; }
public DbSet<RequestStatus> RequestStatuses { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new StatusConfiguration());
modelBuilder.Configurations.Add(new RequestStatusConfiguration());
}
}
他们的配置:
class StatusConfiguration : EntityTypeConfiguration<Status>
{
internal StatusConfiguration()
{
this.ToTable("Statuses");
this.Property(x => x.Id).HasColumnName("StatusID");
this.Property(x => x.Name).HasColumnName("Status");
}
}
class RequestStatusConfiguration : EntityTypeConfiguration<RequestStatus>
{
internal RequestStatusConfiguration()
{
this.ToTable("RequestStatuses");
this.Property(x => x.Id).HasColumnName("RequestStatusID");
this.Property(x => x.Name).HasColumnName("RequestStatus");
}
}
每个表中的数据是这样的:
请求状态表:
RequestStatusID RequestStatus
1 RequestStatus1
2 RequestStatus2
3 RequestStatus3
4 RequestStatus4
状态表:
StatusID Status
1 Status1
2 Status2
3 Status3
4 Status4
每个表的主键与另一个表中的主键匹配。所以如果我有一个RequestStatus1的请求状态,那么对应的状态一定是Status1。如果我的状态为 Status3,则相应的请求状态必须为 RequestStatus3。
这可能吗?
如何在 EF 中进行设置