Cod*_*men 1 c# entity-framework-5
我有两张桌子:
[Table("Ticket_Admins")]
public class TicketAdmin
{
public TicketAdmin()
{
Name = new Record();
Name.IsRevisioned = false;
Name.IsVisible = true;
Name.Category = typeof(TicketAdmin).Name;
}
[Key]
public int Id { get; set; }
public virtual Record Name { get; set; }
public virtual TicketPost Post { get; set; }
public virtual UserProfile User { get; set; }
}
[Table("UserProfile")]
public class UserProfile
{
private string _email;
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string Email
{
get { return _email; }
set { _email = value.ToLower(); }
}
}
Run Code Online (Sandbox Code Playgroud)
并在上下文中映射它们:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<TicketAdmin>()
.HasRequired(x => x.User)
.WithRequiredPrincipal();
base.OnModelCreating(modelBuilder);
}
Run Code Online (Sandbox Code Playgroud)
但是在迁移时我得到错误:
ALTER TABLE语句与FOREIGN KEY约束"FK_dbo.UserProfile_dbo.Ticket_Admins_UserId"冲突.冲突发生在数据库"aspnet-BoomzHelperPortal-dbv3",表"dbo.Ticket_Admins",列'Id'中.
我在这里做错了吗?什么我究竟想要做的是地图我TicketAdmin要UserProfile通过ID( UserProfile.UserId = TicketAdmin.Id)
谢谢你的时间!
更新:我刚尝试创建一个空数据库,这个shema发现它创建UserProfile.UserId了一个外键列,但我需要的是TicketAdmin.Id成为一个FK列.(就像所有用户都有UserProfile一样,但不是每个人都有TicketAdmin设置,而TicketAdmin是UserProfile的子级,并且具有与UserProfile ID相同的ID).
如果要添加必需的关系(不可为空的外键),则必须满足下列条件之一:
Ticket_Admins在本例中)必须为空,或| 归档时间: |
|
| 查看次数: |
5511 次 |
| 最近记录: |