EF映射表错误:列名无效

时间:2017-07-25 20:22:54

标签: c# entity-framework ef-fluent-api

我收到"无效的列名称"错误,我坚信它,因为我的映射是错误的。

我首先使用C#和数据库。

我的表格如下:

icotb001_unidades_c ---- gedtbd042_posto_atendimento_c ------ gedtbd039_posto_atendimento_m

(id)nu_unidade ------------(id)nu_unidade --------------------------- ---(id)co_posto

no_unidade -----------------(fk)co_posto ------------------------- --------- no_posto

试图说清楚:

icotb001_unidades_c-- 0..1:1 - gedtbd042_posto_atendimento_c - M:1 - gedtbd039_posto_atendimento_m

gedtbd042_posto_atendimento_c继承自icotb001_unidades_c。这就是为什么它不是典型的对多关系。

首先使用数据库,未创建表gedtbd042_posto_atendimento_c,其他表具有以下代码:

public partial class icotb001_unidades_c 
{
    public icotb001_unidades_c ()
    {         
    }

    [Key]
    public string nu_unidade { get; set; }

    public string no_unidade{ get; set; }

    public virtual gedtbd039_posto_atendimento_m gedtbd039_posto_atendimento_m { get; set; }
}

public partial class gedtbd039_posto_atendimento_m
{
    public gedtbd039_posto_atendimento_m()
    {
         icotb001_unidades_c = new HashSet<icotb001_unidades_c>();
    }

    [Key]
    [StringLength(9)]
    public string co_posto { get; set; }

    [Required]
    public string no_posto { get; set; }

    public virtual ICollection<icotb001_unidades_c> icotb001_unidades_c { get; set; }
}

之间也没有创建任何流畅的API。我搜索了MSDNthis已回答的问题,但无法使其正常运行。

有什么想法吗?

修改

我更改了上面的表名,以便用下面的表语句清楚说明。

    CREATE TABLE [dbo].[gedtbd039_posto_atendimento_m](
    [co_posto] [char](9) NOT NULL,
    [no_posto] [varchar](100) NOT NULL,
 CONSTRAINT [PK_gedtbd039_posto_atendimento] PRIMARY KEY CLUSTERED 
(
    [co_posto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 98) ON [PRIMARY]
) ON [PRIMARY]

---------

CREATE TABLE [dbo].[icotb001_unidades_c](
    [nu_unidade] [char](4) NOT NULL,
    [no_unidade] [varchar](70) NOT NULL,
 CONSTRAINT [PK_icotb001_unidades_c] PRIMARY KEY CLUSTERED 
(
    [nu_unidade] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 98) ON [PRIMARY]
) ON [PRIMARY]

---------

CREATE TABLE [dbo].[gedtbd042_posto_atendimento_c](
    [co_posto] [char](9) NOT NULL,
    [nu_unidade] [char](4) NOT NULL,
 CONSTRAINT [PK_gedtbd042_vinculacao_posto_atendimento] PRIMARY KEY CLUSTERED 
(
    [nu_unidade] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 98) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[gedtbd042_posto_atendimento_c]  WITH CHECK ADD  CONSTRAINT [FK_gedtbd042_vinculacao_posto_atendimento_gedtbd039_posto_atendimento] FOREIGN KEY([co_posto])
REFERENCES [dbo].[gedtbd039_posto_atendimento_m] ([co_posto])
GO

ALTER TABLE [dbo].[gedtbd042_posto_atendimento_c] CHECK CONSTRAINT [FK_gedtbd042_vinculacao_posto_atendimento_gedtbd039_posto_atendimento]
GO

ALTER TABLE [dbo].[gedtbd042_posto_atendimento_c]  WITH CHECK ADD  CONSTRAINT [FK_gedtbd042_vinculacao_posto_atendimento_icotb001_unidades_c] FOREIGN KEY([nu_unidade])
REFERENCES [dbo].[icotb001_unidades_c] ([nu_unidade])
GO

ALTER TABLE [dbo].[gedtbd042_posto_atendimento_c] CHECK CONSTRAINT [FK_gedtbd042_vinculacao_posto_atendimento_icotb001_unidades_c]
GO

0 个答案:

没有答案