7
我試圖第一次使用導航屬性代替連接。我無法通過左外部連接來實現正常工作的情況。在下面的例子中,我只是在外鍵非空的情況下返回結果。我需要返回所有結果。我錯過了什麼?具有空外鍵的EF導航屬性
public class User
{
[Key]
public int UserID {get;set;}
public String Name {get;set;}
}
public class Shipment
{
[Key]
public int ShipmentID {get;set;}
public int? SignedForByID {get;set;}
[ForeignKey("SignedForByID")]
public virtual User SignedForBy{get;set;}
}
導航屬性映射:
Shipment.HasOptional(x=> x.SignedForBy).WithMany()
.HasForeignKey(y=> y.SignedForByID).WillCascadeOnDelete(false);
查詢:
var data = (from s in context.Set<Shipment>()
select new {
ShipmentID = s.ShipmentID,
SignedForBy = s.SignedForBy
});
上下文變量是一個DbContext嗎?你可以展示你正在調用的'Shipments'方法的實現嗎? – user2697817
是的。我編輯帖子來澄清這一點。這只是一個DbSet – Sam
我很難過,我看不出爲什麼它不應該工作。 – user2697817