Se você não quiser carregar a propriedade, você deve enganar o EF para que ele pense que o
DataItemDetail
relacionado está carregado. var detailItem = new DataItemDetail { Id = d.Id };
_db.DataItemDetails.Attach(detailItem);
_db.DataItems.DeleteObject(d);
_db.SaveChanges();
O problema aqui é que a divisão de tabelas usa a relação 1:1 e o EF sabe que, se excluir uma extremidade da relação, também deve excluir a outra extremidade, mas porque você não carregou a outra extremidade, não pode fazê-lo.