Меня устраивает FK-имена "Table_Id" ИЛИ "TableId" в моей таблице. Но генератор SQL Entity Framework использует и то, и другое.
- Сопоставленные ассоциации (независимые ассоциации, видимые свойства FK): без подчеркивания
- Ограниченные ассоциации (ассоциации внешних ключей): подчеркивание
Это кажется смешным - с точки зрения БД нет никакой разницы между этими двумя отношениями, поэтому согласованность здесь кажется очевидной. Я строю Model First.
Я что-то делаю не так или есть способ это исправить?
РЕДАКТИРОВАТЬ: По запросу, включая образец. Я создал новую диаграмму Entity и сгенерировал SQL. Это подтверждает. Вот снимок диаграммы и сценария создания базы данных из модели. Обратите внимание на BasketId для яблок и Basket_Id для апельсинов. Единственная разница заключается в выборе «Добавить свойства внешнего ключа к объекту «Апельсины»». при добавлении этой ассоциации.
-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, and Azure
-- --------------------------------------------------
-- Date Created: 04/29/2013 23:38:07
-- Generated from EDMX file: C:\data\web-trunk\TestEntities.Data\TestEntities.edmx
-- --------------------------------------------------
SET QUOTED_IDENTIFIER OFF;
GO
USE [TestEntities];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO
-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------
-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------
-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------
-- Creating table 'Baskets'
CREATE TABLE [dbo].[Baskets] (
[Id] int IDENTITY(1,1) NOT NULL
);
GO
-- Creating table 'Apples'
CREATE TABLE [dbo].[Apples] (
[Id] int IDENTITY(1,1) NOT NULL,
[BasketId] int NOT NULL
);
GO
-- Creating table 'Oranges'
CREATE TABLE [dbo].[Oranges] (
[Id] int IDENTITY(1,1) NOT NULL,
[Basket_Id] int NOT NULL
);
GO
-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------
-- Creating primary key on [Id] in table 'Baskets'
ALTER TABLE [dbo].[Baskets]
ADD CONSTRAINT [PK_Baskets]
PRIMARY KEY CLUSTERED ([Id] ASC);
GO
-- Creating primary key on [Id] in table 'Apples'
ALTER TABLE [dbo].[Apples]
ADD CONSTRAINT [PK_Apples]
PRIMARY KEY CLUSTERED ([Id] ASC);
GO
-- Creating primary key on [Id] in table 'Oranges'
ALTER TABLE [dbo].[Oranges]
ADD CONSTRAINT [PK_Oranges]
PRIMARY KEY CLUSTERED ([Id] ASC);
GO
-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------
-- Creating foreign key on [Basket_Id] in table 'Oranges'
ALTER TABLE [dbo].[Oranges]
ADD CONSTRAINT [FK_BasketOrange]
FOREIGN KEY ([Basket_Id])
REFERENCES [dbo].[Baskets]
([Id])
ON DELETE NO ACTION ON UPDATE NO ACTION;
-- Creating non-clustered index for FOREIGN KEY 'FK_BasketOrange'
CREATE INDEX [IX_FK_BasketOrange]
ON [dbo].[Oranges]
([Basket_Id]);
GO
-- Creating foreign key on [BasketId] in table 'Apples'
ALTER TABLE [dbo].[Apples]
ADD CONSTRAINT [FK_BasketApple]
FOREIGN KEY ([BasketId])
REFERENCES [dbo].[Baskets]
([Id])
ON DELETE NO ACTION ON UPDATE NO ACTION;
-- Creating non-clustered index for FOREIGN KEY 'FK_BasketApple'
CREATE INDEX [IX_FK_BasketApple]
ON [dbo].[Apples]
([BasketId]);
GO
-- --------------------------------------------------
-- Script has ended
-- ------------------------
BasketId
и в оранжевом. - person Jayantha Lal Sirisena   schedule 30.04.2013