我希望有人能在这里给我一些建议。我想知道我的方法是否在轨道上或离开基地。我正在使用Entity Framework,数据库第一种方法。我有一个链接表,将人们彼此联系起来。例如,与人2相关联的人1作为朋友。 (association_type包含与查找表关联的键值)
我注意到Entity Framework创建了两个单独的导航属性。
[EdmRelationshipNavigationPropertyAttribute("IntelDBModel", "FK_a_Person_Person_t_Person", "a_Person_Person")]
public EntityCollection<a_Person_Person> a_Person_Person
[EdmRelationshipNavigationPropertyAttribute("IntelDBModel", "FK_a_Person_Person_t_Person1", "a_Person_Person")]
public EntityCollection<a_Person_Person> a_Person_Person1
在应用程序的其他部分,我已成功使用Entity Framework将数据写入数据库。例如,我有一个人打电话。
在电话人员场景中,我创建一个t_Person(p)对象,然后创建一个t_Telephone(t)对象并使用p.t_Telephone.Add(t);
这似乎工作正常。
我在如何管理此人对人员链接表插入方面有点迷失。
保存到数据库时,我使用foreach迭代People对象。
foreach (t_Person p in People)
{ctx.t_Person.AddObject(p);
...
}
我知道哪个人与此People对象集合中的人员相关联。但是,我不知道如何利用t_Person导航属性(a_Person_Person)将person1和person2值保存到链接表(a_Person_Person)。
任何提示都将不胜感激。
答案 0 :(得分:0)
我认为给定的情况通常会给你很难使用EF,因为你用相同的主键链接两个外键两个表,因为关系或延迟加载很难处理你可能得到双重记录或错误的记录,我会添加另一个属性到t_person表,如datecreated,这将使EF对待t_person表不是一个关联,但作为实际实体,让您更多地控制实体和插入和删除。