我可以有导航属性基于某些字段(不是主键!(唯一键或外键)

本文关键字:唯一 一键 属性 导航 于某些 我可以 字段 | 更新日期: 2023-09-27 18:01:42

假设我们有两个表

public class Table1
{
    [Key]
    public int ID { get; set; }
    public int ID2 { get; set; }
    public int ID3 { get; set; }
}
public class Table2
{
    [Key]
    public int ID { get; set; }
    public int ID2 { get; set; }
    public int ID3 { get; set; }
}

列ID在表1和表2中是主键,仅此而已!

现在,我想创建一个关系(不是在数据库中!);我只是想对EntityFramework撒谎,这两个表之间有关系。

所以,我想从表2的ID2是外键和引用不是列ID表1,但列ID2

这可能吗?

EDIT2

我知道有可能是

public class Table2
{
    //...
    public int ID2 { get; set; }
    [ForeignKey("ID2")]
    public Table1 Table1 { get; set; }
    //...
}

public class Table1
{
    //...
    public virtual ICollection<Table2> Table2 { get; set; }
    //...
}

我成功地为某个表1行扩展了所有表2行。

sql的连接将像表1。ID = table . id2;我需要它像表1一样。ID2 =表2。ID2

我可以有导航属性基于某些字段(不是主键!(唯一键或外键)

我最终为A表创建了2个视图,并将这些视图映射到EF实体。第一个视图以ID为主键,第二个视图以ID2为主键。显然,第二个视图是用来展开所有Table2行的。