假设我们有2张桌子
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是Table1和Table2中的主键,就是这样!
现在,我想创建一个关系(不在数据库中!);我只想欺骗EntityFramework这两个表之间存在关系。
所以,我希望Table2中的ID2是外键,并且 Table1 引用而非列ID ,但列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; }
//...
}
我成功扩展了某个Table1行的所有Table2行。
sql的连接类似于:Table1。 ID = Table2.ID2; 我需要它像Table1。 ID2 = Table2.ID2
答案 0 :(得分:1)
我最终为A表创建了2个视图,并将这些视图映射到EF实体。第一个视图将ID作为主键,第二个视图将ID2作为主键。显然,第二个视图是用于扩展所有Table2行的视图。