Платформа объекта: проигнорируйте столбцы

Что я понимаю из вашего Вопроса: вы рассчитываете Доход и Расход на основе project_id.

Предположение: есть проекты, которые не будут иметь доходов, и лишь немногие могут не иметь расходов. В этом случае эти project_id будут иметь 0 как выручка или расход. В идеале именно так вы получите брутто. Если вы используете отдельные таблицы, то нет смысла расчета брутто.

35
задан Craig Stuntz 10 April 2009 в 14:22
поделиться

5 ответов

Можете ли вы сделать это с помощью Entity Framework? Да; это просто. Можете ли вы сделать это с дизайнером Entity Framework? К сожалению, это намного сложнее.

Проблема, с которой вы столкнулись, заключается в том, что столбец существует в схеме хранения (SSDL) в вашем EDMX. Удаление столбца с помощью дизайнера графического интерфейса просто удаляет его из схемы клиента, а не из схемы отображения или схемы хранения. Однако достаточно просто зайти в EDMX и удалить его. Сделав это, вы также можете удалить его из сопоставления в частях схемы клиента EDMX, и структура сущности будет дольше жаловаться, что она не сопоставлена.

Проблема решена, верно?

Ну, нет. Когда вы используете дизайнер графического интерфейса для обновления EDMX из базы данных, схема хранилища выбрасывается и создается заново. Так что ваша колонна вернется. Насколько я знаю, нет способа сказать дизайнеру GUI никогда не отображать конкретный столбец. Так что вам придется делать это каждый раз, когда вы обновляете с дизайнером GUI. К счастью, EDMX - это XML, поэтому вы можете сделать это с помощью преобразования XML, LINQ или инструмента XML по вашему выбору.

29
ответ дан Craig Stuntz 27 November 2019 в 15:44
поделиться

Не можете ли вы создать представление с нужными вам столбцами, импортировать его с помощью мастера функций сущностей и отобразить его на свои сущности?

2
ответ дан 27 November 2019 в 15:44
поделиться

Вы вообще не хотите, чтобы столбец появлялся в модели?

Попробуйте выбрать столбец в представлении «Дизайнер» и нажать клавишу удаления.

Редактировать

Вы можете сделать установщик для частной собственности. Тогда ваше приложение не сможет изменить значение.

1
ответ дан 27 November 2019 в 15:44
поделиться

Щелкните правой кнопкой мыши по полю в графическом представлении и выберите «Удалить». Я обнаружил, что иногда вы получаете ошибки, когда вносите много изменений в моделирование сразу и начинаете терять свои изменения. Лучше всего было бы восстановить модель, сгенерированную EF.

Имейте в виду, что при «обновлении из базы данных» старые поля в сгенерированных моделях не будут удалены, вам придется удалять их вручную. Например, если вы переименовали DateField1 в DateField2 в своей базе данных, а затем «Обновить модель из базы данных», теперь вы увидите и DateField1, и DateField2 в результирующей модели. Это может быть причиной ошибок.

0
ответ дан 27 November 2019 в 15:44
поделиться

Timestamp - это другой тип данных, чем DateTime. Похоже, что временная метка признана атрибутом, которым управляет движок, подобно атрибуту идентификации. Вы не можете "обновить" атрибут временной метки. Следовательно, EDM может управлять им правильно (так же, как и идентификацией).

0
ответ дан 27 November 2019 в 15:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: