Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 首先执行与EF6数据库的1:0..1关系_Sql Server_Entity Framework_Entity Framework 6 - Fatal编程技术网

Sql server 首先执行与EF6数据库的1:0..1关系

Sql server 首先执行与EF6数据库的1:0..1关系,sql-server,entity-framework,entity-framework-6,Sql Server,Entity Framework,Entity Framework 6,在我的模型中,我有三个表,Storage、Haul和StoragePlace。一个仓库可以是一个地方,也可以是一个运输点。对于StoragePlace,我已经实现了1:0..1的关系。问题在于拖运实体 CREATE TABLE dbo.Haul ( ID INT NOT NULL PRIMARY KEY IDENTITY, ID_Storage INT NOT NULL UNIQUE, Arrival DATETIME NOT NULL DEFAULT getdate(

在我的模型中,我有三个表,
Storage
Haul
StoragePlace
。一个仓库可以是一个地方,也可以是一个运输点。对于
StoragePlace
,我已经实现了1:0..1的关系。问题在于
拖运
实体

CREATE TABLE dbo.Haul
(
    ID INT NOT NULL PRIMARY KEY IDENTITY, 
    ID_Storage INT NOT NULL UNIQUE,
    Arrival DATETIME NOT NULL DEFAULT getdate(), 
    Depature DATETIME NULL,

    CONSTRAINT FK_Haul_to_Storage FOREIGN KEY (ID_Storage) REFERENCES Storage(ID) ON DELETE CASCADE
)
GO

/** --- See edit below --
CREATE UNIQUE NONCLUSTERED INDEX UQX_Storage
    ON Haul(ID_Storage)
    WHERE ID_Storage IS NOT NULL;
GO
**/

--------------------------------------------------

CREATE TABLE dbo.Storage
(
    ID INT NOT NULL PRIMARY KEY IDENTITY,
    Description1 NVARCHAR(100) NULL,
    Description2 NVARCHAR(100) NULL,
    AddedBy NVARCHAR(50) NOT NULL
)

--------------------------------------------------

CREATE TABLE dbo.StoragePlace
(
    ID INT NOT NULL PRIMARY KEY,
    ID_PlantArea INT NOT NULL,

    CONSTRAINT FK_StoragePlace_to_Storage FOREIGN KEY (ID) REFERENCES Storage(ID) ON DELETE CASCADE,
    CONSTRAINT FK_StoragePlace_to_PlantArea FOREIGN KEY (ID_PlantArea) REFERENCES PlantArea(ID) ON DELETE CASCADE
)
我的想法是,
UQX\u存储
将触发EF6接受
拖运
存储
之间的1:0..1关系。当然,这是行不通的;它仍然坚持1:*关系,根据我的理解,这在上述模式下是不可能的

如何在
拖运
存储
之间实施预期的1:0..1关系

编辑:


我刚刚意识到,
ID\u Storage
字段永远不能为
NULL
,因此我用一个简单的
ID\u Storage INT NOT NULL UNIQUE,
替换了
UQX\u Storage
“约束”。然而,这也没有解决问题。

类似:@SteveGreene我已经找到了那篇帖子。这对数据库有帮助,但对EF6没有帮助。