在下面的函数中,在 context.SaveChanges() 之后,实体 PropertyType 始终为空。我刚刚从使用 ObjectContext 转换为 DBContext(首先使用数据库),在更改之前,它运行良好,但现在不行。有什么我想念的吗?
我检查了 PropertyTypeID,它写得正确并且存在于数据库中。所有关系都在 db 和 edmx 文件中正确设置。生成的 .tt 文件将 PropertyType 对象显示为虚拟。这是 EF 5。
这是代码(实体属性的非重要分配已被删除):
private ListingTransferDetail BeginListingTransferDetailReport(int PropertyTypeID)
{
ListingTransferDetail transfer_detail = new ListingTransferDetail();
transfer_detail.PropertyTypeID = PropertyTypeID;
using (IDXEntities context = new IDXEntities())
{
context.ListingTransferDetails.Add(transfer_detail);
context.SaveChanges();
TransferProgress += "<br /><br /><strong>" + DateTime.Now + "</strong>: Transfer initialized for property type \"" + transfer_detail.PropertyType.DisplayName + "\".";
}
return transfer_detail;
}
提前致谢。
编辑
我发现如果我在 SaveChanges() 之后添加这行代码,它就可以工作。但是,这并不理想,我怎样才能让它默认加载实体?
context.Entry(transfer_detail).Reference(a => a.PropertyType).Load();
再次感谢。