Выберите все поля из таблицы, используя Entity Framework - PullRequest
2 голосов
/ 28 октября 2010

В приведенном ниже коде все поля возвращаются из таблиц, кроме полей, которые являются внешними ключами.Как получить поля внешнего ключа для отображения?Я просто хочу, чтобы эквивалент выбрал * из tableName.

        public ActionResult ShowAllTables() 
    {


        var model = new CSLA_StagingModel()
        {

            depots = db.CSLA_DEPOT.Where(c => c.DEPOT_ID == 10065).ToList<CSLA_DEPOT>(),
            addresses = db.CSLA_ADDRESS.Where(a => a.CSLA_DEPOT.DEPOT_ID == 10065).ToList<CSLA_ADDRESS>(),
        };


        return View(model);

    }

примечание: я использую vs2008

РЕДАКТИРОВАТЬ: я думаю, что я мог бы использовать Linq для SQL, пока я не получу VS2010

Ответы [ 3 ]

1 голос
/ 28 октября 2010

В Entity Framework 3.5 и VS 2008 внешние ключи скрыты под их свойствами навигации (иначе говоря, Независимая ассоциация ) и не доступны напрямую через целевой объект объекта.Таким образом, чтобы получить к ним доступ, вам нужно сделать это через их свойства навигации (например, CSLA_DEPOT), как код, который опубликовал Крейг.

1 голос
/ 28 октября 2010

Нет SELECT *.

Вы можете, однако, проецировать идентификаторы:

var q = from a in db.CSLA_ADDRESS
        select new
        {
            ADDRESS_ID = a.ADDRESS_ID,
            DEPOT_ID = a.CSLA_DEPOT.DEPOT_ID,
            // etc.
        };
0 голосов
/ 28 октября 2010

Я бы добавил поле FK в качестве свойства масштабирующего объекта. Если это FK VALUE имеет деловое значение, то нет ничего плохого в том, чтобы добавить его в концептуальную модель. Это также сделает код дискретным и читабельным.

...