Zain Nabi Ответов: 1

Возвращенные дубликаты записей Linq


Однако, на мой взгляд, в моей базе данных нет дубликатов записей. Он показывает дубликаты. ClientId-это Guid, который передается каждой таблице в соединении.

Пожалуйста помочь

Что я уже пробовал:

<pre> public ActionResult ClientInfo(string ClientId)
        {
            var query = (from x in db.FinancialNeedsClients
                         join y in db.FinancialSpouseDetailss on x.ClientId equals y.ClientId
                         join z in db.FinancialSpouseDetailss on x.ClientId equals z.ClientId
                         join c in db.FinancialNeedsChildrens on x.ClientId equals c.ClientId
                         join d in db.FinancialNeedDependentss on x.ClientId equals d.ClientId
                         join e in db.FinancialNeedContactDetailss on x.ClientId equals e.ClientId
                         where x.ClientId == ClientId
                         select new FinancialNeedClientInfoViewModel()
                         {
                             Id = x.Id,
                             ClientId = x.ClientId,
                             Surnname = x.Surnname,
                             FirstName = x.FirstName,
                             IDNumber = x.IDNumber,
                             DOB = x.DOB,
                             Age = (int?)x.Age ?? 0,
                             Nationality = x.Nationality,
                             Occupation = x.Occupation,
                             TaxRef = x.TaxRef,
                             EmailAddress = x.EmailAddress,
                             ContactNumber = x.ContactNumber,
                             MaritaStatus = x.MaritaStatus,
                             MaritalRegime = x.MaritalRegime,
                             YearOfMarriage = x.YearOfMarriage,
                             IfOther = x.IfOther,

                             SpouseId = (int?)y.Id ?? 0,
                             SpouseSurnname = y.Surnname,
                             SpouseFirstName = y.FirstName,
                             SpouseIDNumber = y.IDNumber,
                             SpouseDOB = y.DOB,
                             SpouseAge = (int?)y.Age ?? 0,
                             SpouseNationality = y.Nationality,
                             SpouseOccupation = y.Occupation,
                             SpouseTaxRef = y.TaxRef,
                             SpouseEmailAddress = y.EmailAddress,
                             SpouseContactNumber = y.ContactNumber,

                             ChildId = (int?)c.Id ?? 0,
                             ChildrenFIrst_Name = c.FIrst_Name,
                             ChildrenGender = c.Gender,
                             ChildrenAge = (int?)c.Age ?? 0,
                             ChildrenOccupation = c.Occupation,
                             ChildrenDOB = c.DOB,

                             DepId = (int?)d.Id ?? 0,
                             DepdendentFIrst_Name = d.FIrst_Name,
                             DepdendentAge = (int?)d.Age ?? 0,
                             DepdendentRelationship = d.Relationship,

                             ContactId = (int?)e.Id ?? 0,
                             MainMemberResedentialAddress = e.ResedentialAddress,
                             MainMemberPostalAddress = e.PostalAddress,
                             MainMemberBusinessAddress = e.BusinessAddress,
                             MainMemberMobileNumber = e.MobileNumber

                         }).Distinct().ToList();

pankajupadhyay29

Попробуйте получить запрос БД с помощью профилировщика и посмотреть, не возвращает ли он дубликаты записей. Это указывает на то, что существует отношение "один ко многим", которое возвращает несколько записей.

Zain Nabi

Как мне получить запрос к БД..

Maciej Los

Вы можете использовать Помощью linqpad ;)

Gerry Schmitz

Почему вы дважды присоединяетесь к "SpouseDetails"? Неужели это двоеженцы?

Zain Nabi

Привет я удалил один spouseDetails из соединения но запрос все еще выбрасывает дубликаты

1 Ответов

Рейтинг:
2

ZainNabi

Distinct не работает, потому что в моей базе данных нет повторяющихся значений. Кроме того, я не хочу группировать, потому что каждое значение является unuqie