我正在尝试使用Fluent API (Entity Framework V5)在以下领域类之间建立外键关系:
public partial class User
{
public long UserID { get; set; }
public string UserName { get; set; }
}
public partial class AccountGroup : BaseEntity
{
public long AccountGroupID { get; set; }
public string Name { get; set; }
public long ModifiedBy { get; set; }
public virtual User User { get; set; }
}Fluent API
builder.Entity<User>().HasKey(p => p.UserID); //Set User Id as primary key
builder.Entity<AccountGroup>().HasKey(x => x.AccountGroupID); //SetAccountGroupId as PK我不确定如何使用fluent API设置User.UserId和AccountGroup.ModifiedBy列之间的关系。我可以通过Data Annotation做到这一点,但我正在寻找使用fluent api的解决方案
发布于 2013-07-18 23:26:43
从实体中删除ModifiedBy属性:
public partial class AccountGroup
{
public long AccountGroupID { get; set; }
public string Name { get; set; }
public virtual User User { get; set; }
}然后像这样映射外键:
builder.Entity<AccountGroup>()
.HasRequired(x => x.User)
.WithMany()
.Map(m => m.MapKey("ModifiedBy"));如果外键应该为空,请改用HasOptional:
builder.Entity<AccountGroup>()
.HasOptional(x => x.User)
.WithMany()
.Map(m => m.MapKey("ModifiedBy"));您也不需要像现在这样指定主键。Entity Framework将通过约定发现它们。
https://stackoverflow.com/questions/17727325
复制相似问题