Sql 如何首先从数据库创建Entity Framework 6.1中的1到1/1到0..1关系?

Sql 如何首先从数据库创建Entity Framework 6.1中的1到1/1到0..1关系?,sql,entity-framework,linq-to-entities,edmx,ef-database-first,Sql,Entity Framework,Linq To Entities,Edmx,Ef Database First,我有一个数据库首先生成的edmx项目 如何向edmx或数据库(因此也就是edmx)添加1:1或1:0..1关系? 注意事项 我在搜索引擎中寻找如何在实体框架6.1中创建1:1或1:0..1关联;大多数人首先提到代码,一些人提到模型优先的方法,几乎所有人都提到流畅的API 我已经研究了各种类似的堆栈溢出问题,它们也首先提到了代码;在我的情况下,代码优先不是一个选项 我还没有找到一篇文章提到这在数据库中是否可行 谢谢:)我已经解决了如何首先在数据库中创建1:0..1关系的问题 对于这两个表(在本例中

我有一个数据库首先生成的edmx项目

如何向edmx或数据库(因此也就是edmx)添加1:1或1:0..1关系?

注意事项
我在搜索引擎中寻找如何在实体框架6.1中创建1:1或1:0..1关联;大多数人首先提到代码,一些人提到模型优先的方法,几乎所有人都提到流畅的API

我已经研究了各种类似的堆栈溢出问题,它们也首先提到了代码;在我的情况下,代码优先不是一个选项

我还没有找到一篇文章提到这在数据库中是否可行


谢谢:)

我已经解决了如何首先在数据库中创建1:0..1关系的问题

对于这两个表(在本例中为Tbl_A和Tbl_A_Proxy),它要求一个表的主键不是IDENTITY(1,1),并且其主键是另一个表的主键的外键

可能还有其他方法,但我就是这样解决的

USE [Database]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[Tbl_A]
(
    [id] [int] IDENTITY(1,1) NOT NULL,
    [Name] [varchar](255) NOT NULL,
 CONSTRAINT [PK_Tbl_A] PRIMARY KEY CLUSTERED 
(
    [id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

CREATE TABLE [dbo].[Tbl_A_Proxy]
(
    [id] [int] NOT NULL,
 CONSTRAINT [PK_Tbl_A_Proxy] PRIMARY KEY CLUSTERED 
(
    [id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [Database].[dbo].[Tbl_A_Proxy]
ADD CONSTRAINT [FK_Tbl_AProxy]
FOREIGN KEY ([id])
REFERENCES [Database].[dbo].[Tbl_A]([id])

模型优先和数据库优先本质上是相同的。它们都使用edmx文件进行配置。所以任何关于模型优先的文章都应该首先应用于数据库。为此,请使用模型第一篇文章进行测试。。然后看看它在数据库中做了什么,然后对你的数据库做同样的事情并将其反转。不,它没有。创建1:0..1关系,运行生成的sql文件,然后从databaase创建模型,得到的是1:*关系。