使用实体框架 4.1 代码优先方法将一对一的表关系映射到单个实体

Posted

技术标签:

【中文标题】使用实体框架 4.1 代码优先方法将一对一的表关系映射到单个实体【英文标题】:Map one to one table relation to single entity using entity framework 4.1 Code First approach 【发布时间】:2011-06-08 15:37:34 【问题描述】:

我在数据库中的表 Account 和 AccountProperties 之间存在一对一的关系,如下所示。

CREATE TABLE Account(
    [ID] [int] IDENTITY(1,1) NOT NULL,  
    [AccountName] [varchar](255),
    CONSTRAINT [PK_Account]
    PRIMARY KEY CLUSTERED ([ID] ASC)
) ON [PRIMARY]

CREATE TABLE AccountProperties(
    [AccountHistoryID] [int] IDENTITY(1,1) NOT NULL,
    [AccountID] [int] NOT NULL,
    [Password] [varchar](50) NULL   
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[AccountProperties]  WITH NOCHECK
ADD  CONSTRAINT [FK_AccountProperties_Account]
FOREIGN KEY([AccountID]) REFERENCES [dbo].[Account] ([ID])

我想使用外键 AccountID 将这两个表映射到单个实体,如下所示。

public class Account

    [Key]
    public int ID  get; set; 
    public string AccountName  get; set; 
    public string Password  get; set;         

有人可以使用 fluent API 给我正确的映射吗?

【问题讨论】:

【参考方案1】:

我在这里找到了解决方案:http://msdn.microsoft.com/en-us/library/bb896233.aspx

【讨论】:

以上是关于使用实体框架 4.1 代码优先方法将一对一的表关系映射到单个实体的主要内容,如果未能解决你的问题,请参考以下文章

实体框架 4.1 代码优先映射到将主键作为外键列的表

用于一对一识别关系的实体框架代码优先流利 API 配置

实体框架 4.1 代码优先外键 ID

实体框架代码优先关系 - 如何定义两个对象之间的关系:两个实体之间的可选一对一

如何自定义与 EDMX(模型优先)实体框架 4.1 一起使用的表名?

实体框架核心关系问题(代码优先) - 重复列