【发布时间】:2014-05-05 17:36:32
【问题描述】:
假设我们有 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的join会是这样的:Table1.ID = Table2.ID2; 我需要它像 Table1.ID2 = Table2.ID2
【问题讨论】:
-
这对我来说没有任何意义。你想对ef“撒谎”,搞这么假的关系干什么?
-
因为我处理的模型...有一个表提供了这些虚假关系,并且该表经常更改。因此,只要此表发生更改,我就会使用控制台应用程序生成模型。阅读编辑2
标签: c# entity-framework ef-code-first foreign-keys navigation-properties