linq to sql c #: заменить внешний ключ на строковое значение и сохранить структуру таблицы - PullRequest
1 голос
/ 24 мая 2011

Мне интересно, возможно ли это сделать? Проблема в том, что я пытаюсь запросить базу данных, чтобы заполнить некоторые списки. Если бы я использовал этот запрос:

var query =
     a in db.Record_HoldData
     where a.HoldStatus == "Open"
     select a;

Это вернуло бы все соответствующие данные, и я все еще мог получить доступ и привести данные из объекта результата как:

DateTime time = (DateTime)query.DateOpened;

Но поле Flavor - это номер внешнего ключа, поэтому оно бесполезно в этом контексте. То, что я хочу сделать, это вернуть таблицу без изменений, заменив внешний ключ flavor на фактическое имя из таблицы поиска flavor, и при этом иметь возможность использовать эти данные. Имеет ли это смысл? Я думаю, довольно прямо.

1 Ответ

0 голосов
/ 24 мая 2011

Вам необходимо объединить две таблицы следующим образом:

var query = (
    from a in db.Record_HoldData
    join b in db.FlavorTable on
        a.FlavorId equals b.Id
    where a.HoldStatus == "Open"
    select
        new
        {
            a.DateOpened,
            a.Field1,
            a.Field2,
            ...
            b.FlavorName
        })
    .ToList();

Также добавьте ToList ().В противном случае вы в конечном итоге будете запрашивать базу данных при каждом обращении к запросу, а не загружать данные один раз и повторно использовать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...