Chr*_*eis 4 entity-framework data-modeling code-first entity-framework-4 entity-framework-ctp5
我如何使用modelBuilder映射这样的东西?其中可以为空的外键引用相同的表主键
Table: Task
taskID int pk
taskName varchar
parentTaskID int (nullable) FK
Run Code Online (Sandbox Code Playgroud)
任务类:
public class Task
{
public int taskID {get;set;}
public string taskName {get;set;}
public int parentTaskID {get;set;}
public Task parentTask {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
...
modelBuilder.Entity<Task>()
.HasOptional(o => o.ParentTask)....
Run Code Online (Sandbox Code Playgroud)
以下代码为您提供了所需的架构.请注意,您还需要将ParentTaskID外键定义为可以为空的整数,就像我在下面所做的那样.
public class Task
{
public int TaskID { get; set; }
public string TaskName { get; set; }
public int? ParentTaskID { get; set; }
public Task ParentTask { get; set; }
}
public class Context : DbContext
{
public DbSet<Task> Tasks { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Task>()
.HasOptional(t => t.ParentTask)
.WithMany()
.HasForeignKey(t => t.ParentTaskID);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2941 次 |
| 最近记录: |