我一直花费数小时试图找出答案,查看其他帖子,但没有任何东西可以帮助我解决这个问题。实体框架4.1多对多自引用关系有效载荷问题
目标是我想跟踪组织中的其他人与我们组织中的人的关系。
我有两个表
Persons
Person_Person
与用于第一和第二人的ID和称为关系类型一个额外的列。
我想有一个人的导航属性来访问所有与他人的关系。
出于某种原因,当我尝试做
newperson.Relationships.add(new Person_Person(){Person1= person});
我得到一个额外的行。
东西不加入了,请帮我整理了这一点
更新#1
好让我澄清,我有类调用者
public class Person {
int personID;
string Name;
public virtual ICollection<Relationship> Relationships;
}
public class Relationship {
int RelationshipID {get; set;}
public virtual Person person1{get; set;}
public virtual Person person2{get; set;}
public string relationshipType {get; set;}
}
我希望能够做两件事情,一个是能够通过关系集合做
Person newperson = new Person();
newperson.Relationships.add(person2);
这导致额外的行添加relationshp。
另一种是如果我通过关系表中添加的人如
Relationship relationship= new Relationship();
relationship.person1= person1;
relationship.person2= person2;
relationship.relationshiptype="father";
db.Relationships.add(relationship);
这工作,但我希望它出现在所谓的特定的人的关系
我如何做到这一点我希望我能够澄清我知道代码不是完美的语法明智,我写了它在飞行中。但请帮助我的逻辑。
额外的行在哪里?你能否向我们提供关于上述行的更多细节? – McKay 2012-01-12 23:59:23
“关系”属性参与的关系的另一端是什么?当您将新实例添加到集合时,它将导致新行。 – Eranga 2012-01-13 00:07:22
“在飞行中”写下问题并不好。你的问题总是混乱。如何将一个名为'Person_Person'的未知类添加到保存“Relationship”类型对象的集合?如何将一个'person2'(它可能是一个Person,或者如果没有,有一个奇怪的名字,谁知道)添加到Relationships集合中?什么是“额外的一排”?你仍然没有澄清这一点。如果你想要一个有用的答案,请在你的问题上花点功夫,不要让人们猜测你有什么问题。现在我正在投票结束这个问题,因为很难说出这里提出的问题。 – Slauma 2012-01-13 14:58:04