以下是Microsoft Access数据库的关系图:
请注意,只有一个“节点”表。 “Nodes_1”不是一个单独的表。当表的多个实例位于关系图中时,Access使用该命名约定。
我想先使用Entity Framework代码来定义类似的数据库。
我已经开始草拟代码:
namespace Relationships
{
public class Node
{
public int ID { get; set; }
public string Title { get; set; }
public virtual ObservableCollection<Relationship> Outgoing { get; set; }
public virtual ObservableCollection<Relationship> Incoming { get; set; }
}
public class Label
{
public int ID { get; set; }
public string Title { get; set; }
}
public class Relationship
{
public int ID { get; set; }
public Node A { get; set; }
public Node B { get; set; }
public Label Label { get; set; }
}
public class Context : DbContext
{
public DbSet<Node> Nodes { get; set; }
public DbSet<Label> Labels { get; set; }
public DbSet<Relationship> Relationships { get; set; }
}
}
给定Outgoing
的 Node
应返回该节点为A
的关系。给定Incoming
的{{1}}应返回该节点为Node
的关系。
设置它的好方法是什么?
答案 0 :(得分:0)
向InverseProperty
和Outgoing
添加Incoming
注释似乎已经成功了:
public class Node
{
public int ID { get; set; }
public string Title { get; set; }
[InverseProperty("A")]
public virtual ObservableCollection<Relationship> Outgoing { get; set; }
[InverseProperty("B")]
public virtual ObservableCollection<Relationship> Incoming { get; set; }
}