0
我正在使用實體框架,我有兩個表,一個聯繫關係表和一個聯繫表。這種關係與一個聯繫人有很多聯繫關係。實體框架中的映射關係
在下面的代碼中,我試圖獲取聯繫人關係,然後獲取相關的聯繫人,但下面的代碼始終爲聯繫人返回空值。
[Test]
public void Mapping_ContactRelationshipsToContacts()
{
//Assign
Guid id = new Guid("118a0d24-cf9d-e111-802d-005056b4000d");
//Act
var result = _db.ContactRelationships.Where(x => x.Id == id).FirstOrDefault().Contact;
//Assert
Assert.IsNotNull(result);
}
但是如果我添加一行去到DB頭和加載聯繫然後聯繫關係的工作:那我不使用新的變量
[Test]
public void Mapping_ContactRelationshipsToContacts()
{
//Assign
Guid id = new Guid("118a0d24-cf9d-e111-802d-005056b4000d");
//Act
var notUsed = _db.Contacts.Where(x => x.Id == new Guid("B2A2AB8C-238E-E111-8BF0-005056B4000D")).FirstOrDefault();
var result = _db.ContactRelationships.Where(x => x.Id == id).FirstOrDefault().Contact;
//Assert
Assert.IsNotNull(result);
}
通知,所有我做的確保它在數據庫中。任何人都知道是什麼原因導致此行爲我的關係的映射是:
modelBuilder.Entity<ContactRelationship>().HasOptional(x => x.Contact)
.WithMany(o => o.ContactRelationships).HasForeignKey(x => x.ContactID);
我已檢查並且ID值正確且所有數據都存在。