Вы обновили набор данных в .rdlc?Если он был создан до добавления внешнего ключа, вам нужно удалить набор данных .rdlc и источник данных и создать новый.
Как насчет создания DTO?Иногда проще создать сложный список объектов, заполнить его нужными данными и отправить в rdlc.В этом случае вам нужно иметь отдельный проект с rdlc и добавить ссылку на основной проект.Это позволяет вам импортировать DTO как объекты.
List<ExpenseDetailsDTO> list = new List<ExpenseDetailsDTO>()
{
new ExpenseDetailsDTO
{
Amount = 10,
DateExpense = DateTime.UtcNow,
ExpenseDetails_Id = 1,
Expenses_Id = 1,
Expenses_Type = "asd"
},
new ExpenseDetailsDTO
{
Amount = 10,
DateExpense = DateTime.UtcNow,
ExpenseDetails_Id = 1,
Expenses_Id = 1,
Expenses_Type = "asd"
},
new ExpenseDetailsDTO
{
Amount = 10,
DateExpense = DateTime.UtcNow,
ExpenseDetails_Id = 1,
Expenses_Id = 1,
Expenses_Type = "asd"
},
new ExpenseDetailsDTO
{
Amount = 10,
DateExpense = DateTime.UtcNow,
ExpenseDetails_Id = 1,
Expenses_Id = 1,
Expenses_Type = "asd"
},
};
reportDataSource.Name = "testdatasource";
reportDataSource.Value = list;
localReport.DataSources.Add(reportDataSource);
Нечто подобное работало для меня, по крайней мере, в течение последних 4 месяцев при переносе старого API.