一对一EF关系

时间:2020-11-07 10:26:57

标签: c# entity-framework .net-core

我有一个看起来像这样的数据库:

enter image description here

其中TableA是主体,TableB是从属。

我正在尝试使用Entity Framework在数据库中创建此关系。从TableB到TableA的连接有效,但相反(从TableA到TableB)无效。

public partial class TableA
{
    [Key]
    public long id { get; set; }
    public virtual TableB tableB { get; set; }
}

public partial class TableB
{
    [Key]
    public long id { get; set; }
    public long TableA_ID { get; set; }
    public string value { get; set; }   
    [ForeignKey("TableA_ID")]   
    public virtual TableA tableA { get; set; }
}

每次出现错误:

由于从属角色属性不是关键属性,因此从属角色多样性的上限必须为'*'

或错误:

必须使用流利的API或数据注释显式配置此关联的主要端

我尝试在[Required]上方的TableB和其他位置添加public virtual TableA tableA,但似乎无济于事。

能否请您帮我建立这种关系(如果可能,仅使用数据注释)?

1 个答案:

答案 0 :(得分:-2)

DataSet ds = new DataSet(); 
ds.Tables.Add(TableA);
ds.Relations.Add("TableB", TableA.Columns["id"], TableB.Columns["TableA_ID"]);
ds.Relations["TableB"].Nested = true;

如果我理解正确。你可以试试看。