我很好,FK名稱爲「Table_Id」或「TableId」在我的表中。但實體框架SQL生成器正在使用兩者。修復實體框架不一致FK下劃線
- 映射協會(獨立協會,FK屬性可見):無下劃線
- 約束協會(外鍵關聯):強調
這有點顯得很荒謬 - 從DB的角度有沒有什麼區別這兩種關係在這裏具有一致性似乎是顯而易見的。我正在建模首先。
我做錯了什麼或有什麼方法可以解決這個問題?
編輯: 通過請求,包括一個樣本。我創建了一個新的實體圖並生成了SQL。它驗證。下面是該模型腳本的示意圖和生成數據庫的快照。請注意Apple上的BasketId與Oranges上的Basket_Id。唯一的區別是選擇了「向Oranges實體添加外鍵屬性」。添加該關聯時。
-- --------------------------------------------------
-- 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
-- ------------------------
我認爲你有錯誤的映射,你的TableId列映射不正確。這就是EF使用默認的EF的原因。你可以發佈你的兩個實體類和映射(如果有的話)? – 2013-04-30 03:25:03
完成。讓我知道如果這就是你的意思。 – shannon 2013-04-30 03:45:46
這裏沒有什麼錯,你也可以用橙色來做同樣的事情,並且在Orange中也有'BasketId'。 – 2013-04-30 03:51:33