Изменение имени таблицы db в EF4 (структура сущности 4)
Кто-нибудь знает, как изменить отображаемую таблицу db для объекта в EF4 (сущность framework 4)?
Редактирование позже. Думаю, я нашел место, где имена таблиц определены в браузере модели. Но их имена только для чтения, поэтому их невозможно редактировать с помощью конструктора. Кроме того, нет ссылки (из того, что я искал) на имя таблицы в XML-схеме.
Ответы
Ответ 1
Если вам просто нужно изменить имя таблицы, вы можете:
- Открыть файл EDMX с помощью XML-редактора.
- Найдите в нем раздел SSDL.
- Найдите элемент набора объектов, например
<EntitySet Name="Customers" EntityType="ExampleModel.Store.Customers" Schema="dbo" />
.
- Добавить атрибут
Table="MyTableName"
. <EntitySet Name="Customers" EntityType="ExampleModel.Store.Customers" Schema="dbo" Table="MyTableName" />
Ниже приведена полная спецификация CSDL, SSDL, MSL.
Надеюсь, что это поможет.
Ответ 2
Альтернативным решением было бы переопределить метод в вашем классе DbContext
.
public class MyDbContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Product>().ToTable("DB_PRODUCTS_TBL");
// otherwise EF assumes the table is called "Products"
}
}
Ответ 3
Я верю, что вы спрашиваете, перенастроить отображение сущности в таблицу. Вы можете щелкнуть правой кнопкой мыши сущность и выбрать отображение таблицы. Это покажет вам структуру, на которую сопоставляется таблица. Вы можете изменить таблицу там. Однако при открытии раскрывающегося списка вы увидите только таблицу, которую вы импортировали, используя мастер Update Model. Если таблица не импортирована, она не будет указана. Затем вы можете соответствующим образом сопоставить свойства с именами столбцов таблицы.
Ответ 4
Вы можете выполнить сохраненный процесс, который изменяет имя таблицы, передавая имя таблицы как переменную. Затем импортируйте сохраненный процесс в EF4.
ПРОЦЕДУРА СОЗДАНИЯ ChangeTableName
@TableName varchar(200)
А.С.
НАЧАТЬ SET NOCOUNT ON;
EXEC sp_rename "User", @TableName
END
GO
Ответ 5
В Обозревателе моделей или в области дизайна щелкните правой кнопкой мыши объект и выберите свойства. В окне свойств отредактируйте поле "Entity Set Name".
Это сработало для меня, однако я сначала проектировал схему, а затем генерировал базу данных.