首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

EF为何会生成多余字段?

2013-01-05 
EF为什么会生成多余字段???EF模型用“根据模型生成数据库”生成的SQL脚本:CREATE TABLE [dbo].[User] ([ID]

EF为什么会生成多余字段???
EF模型
EF为何会生成多余字段?

用“根据模型生成数据库”生成的SQL脚本:


CREATE TABLE [dbo].[User] (
    [ID] int IDENTITY(1,1) NOT NULL,
    [Name] nvarchar(max)  NOT NULL,
    [Blog_ID] int  NOT NULL
);
GO

-- Creating table 'Blog'
CREATE TABLE [dbo].[Blog] (
    [ID] int IDENTITY(1,1) NOT NULL,
    [Name] nvarchar(max)  NOT NULL,
    [UserId] int  NOT NULL
);
GO

-- Creating table 'Post'
CREATE TABLE [dbo].[Post] (
    [ID] int IDENTITY(1,1) NOT NULL,
    [Title] nvarchar(max)  NOT NULL,
    [Content] nvarchar(max)  NOT NULL,
    [BlogId] int  NOT NULL,
    [Blog_ID] int  NOT NULL
);
GO

-- Creating table 'Comment'
CREATE TABLE [dbo].[Comment] (
    [ID] int IDENTITY(1,1) NOT NULL,
    [Title] nvarchar(max)  NOT NULL,
    [Content] nvarchar(max)  NOT NULL,
    [PostId] int  NOT NULL,
    [Post_ID] int  NOT NULL
);
GO


大家看到了吧,为什么会给每张表生成多余一个外键字段呢(Blog_ID,Post_ID,这些加了下滑线的)?
这些外键字段我在模型时都已经弄好了的。
[解决办法]

[ForeignKey("tid")]
        public AdDisplayType DisplayType
        {
            get;
            set;
        }

        public int tid { get; set; }

这样指定
codefirst很有趣啊    只放一个实体类不指定外键 他会给你找个名字相近类型为那个实体主键的属性当成主键


[解决办法]
你还记得你建立这个东西的时候,那个向导页不, 下面有小的选项框“在模型中加入外键列”,你勾选的他,自然EF就生成了他,这是你自己选择滴。咋又怪到EF头上了

热点排行