Я новичок в инфраструктуре Entity и изо всех сил пытаюсь найти решение для следующего. У меня 3 разных таблицы - Admin, AdminReport и Reports. Admin - это админ-информация о приложении, Admin Report - это данные отчета, которые принадлежат конкретному администратору. Отчеты являются справочной таблицей, содержащей справочные данные отчетов.Обновление для сообщества Entity Framework
Теперь, когда я добавить эти таблицы, администратор и отчет таблица добавляется в качестве объекта, но AdminReport добавляется в качестве ассоциации.
Я в ситуации, когда мне нужно удалить или вставить записи в отчет администратора, но всякий раз, когда я что-то делаю, Entity Framework пытается обновить мою справочную таблицу «Отчет». Код, как показано ниже:
public void UpdateAdminDetails(List<AdminDetails> AdminListtoUpdate)
{
foreach(var admin in AdminListtoUpdate)
{
var updateAdmin = db.Admins.SingleOrDefault(item => item.adminId == admin.AdminId && !admin.IsNew);
updateAdmin.IsAdmin = admin.IsAdmin;
updateAdmin.PersonId = admin.PersonId;
// User on the front end can remove few reports associated with the admin
var AdminReportIDsListToDelete = admin.AdminReport.Select(d => d.AdminReportId).ToList();
var itemsToDelete = updateAdmin.AdminReports.Where(d => !AdminReportIDsListToDelete.Contains(d.AdminReportId)).ToList();
foreach (var itemtoDelete in itemsToDelete)
admin.AdminReport.Remove(itemtoDelete);
// User on the front end can add new reports to the admin.
var AdminReportIDsListToCreate = updateAdmin.AdminReports.Select(c => c.AdminReportId).ToList();
var itemsToCreate = admin.AdminReports.Where(c => !AdminReportIDsListToCreate.Contains(c.AdminReportId)).ToList();
updateAdmin.AdminReports.AddRange(itemsToCreate);
db.saveChanges();
}
}
Но, я получаю сообщение об ошибке о том, что он не может вставить повторяющиеся записи в таблице отчетов.
Запросить помощь для решения этого вопроса. Благодарю.
Этот вопрос может помочь вам. http://stackoverflow.com/questions/7489695/how-to-remove-relationship-between-two-entities – jlvaquero
Спасибо большое Jlvaquero ... Он решил мою проблему с удалением существующих отчетов. Но проблема с добавлением отчетов по-прежнему остается проблемой. – Subash
Пробовал несколько других вариантов, но не везет вообще ... Это может показаться странным, но у меня заканчиваются варианты, и я изо всех сил пытаюсь найти решение для этого же. dbContext.EmployerAdmins.Attach (updateAdmin); dbContext.Entry (updateAdmin) .Entity.EmployerAdminReports.Add (empAdmin.EmployerAdminReport.SingleOrDefault (item => item.EmployerAdminReportId == addItem)); – Subash