Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Entity framework 实体框架映射问题_Entity Framework_Orm - Fatal编程技术网

Entity framework 实体框架映射问题

Entity framework 实体框架映射问题,entity-framework,orm,Entity Framework,Orm,正在尝试使用实体框架映射以下架构 一个客户可以有许多相关的商店 一个商店可以有许多关联的客户 每个商店可以有0个或1个TopCustomer,并且只有1个TopCustomer(TopCustomer的标准在业务逻辑中确定) 这将导致VS中的以下映射 下面是DB脚本: USE [TestDb] GO /****** Object: Table [dbo].[Customer] Script Date: 06/20/2009 09:53:52 ******/ SET ANSI_

正在尝试使用实体框架映射以下架构

  • 一个客户可以有许多相关的商店
  • 一个商店可以有许多关联的客户
  • 每个商店可以有0个或1个TopCustomer,并且只有1个TopCustomer(TopCustomer的标准在业务逻辑中确定)

这将导致VS中的以下映射


下面是DB脚本:


USE [TestDb]
GO
/****** Object:  Table [dbo].[Customer]    Script Date: 06/20/2009 09:53:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Customer](
    [CustomerId] [uniqueidentifier] NOT NULL,
    [FirstName] [nvarchar](50) NOT NULL,
    [LastName] [nvarchar](50) NOT NULL,
 CONSTRAINT [PK_Customer] PRIMARY KEY CLUSTERED 
(
    [CustomerId] 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
/****** Object:  Table [dbo].[Store]    Script Date: 06/20/2009 09:53:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Store](
    [StoreId] [uniqueidentifier] NOT NULL,
    [StoreName] [nvarchar](50) NOT NULL,
    [TopCustomer] [uniqueidentifier] NULL,
 CONSTRAINT [PK_Store] PRIMARY KEY CLUSTERED 
(
    [StoreId] 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
/****** Object:  Table [dbo].[CustomerStore]    Script Date: 06/20/2009 09:53:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CustomerStore](
    [CustomerId] [uniqueidentifier] NOT NULL,
    [StoreId] [uniqueidentifier] NOT NULL,
 CONSTRAINT [PK_CustomerStore] PRIMARY KEY CLUSTERED 
(
    [CustomerId] ASC,
    [StoreId] 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
/****** Object:  ForeignKey [FK_CustomerStore_Customer]    Script Date: 06/20/2009 09:53:52 ******/
ALTER TABLE [dbo].[CustomerStore]  WITH CHECK ADD  CONSTRAINT [FK_CustomerStore_Customer] FOREIGN KEY([CustomerId])
REFERENCES [dbo].[Customer] ([CustomerId])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[CustomerStore] CHECK CONSTRAINT [FK_CustomerStore_Customer]
GO
/****** Object:  ForeignKey [FK_CustomerStore_Store]    Script Date: 06/20/2009 09:53:52 ******/
ALTER TABLE [dbo].[CustomerStore]  WITH CHECK ADD  CONSTRAINT [FK_CustomerStore_Store] FOREIGN KEY([StoreId])
REFERENCES [dbo].[Store] ([StoreId])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[CustomerStore] CHECK CONSTRAINT [FK_CustomerStore_Store]
GO
/****** Object:  ForeignKey [FK_Store_TopCustomer]    Script Date: 06/20/2009 09:53:52 ******/
ALTER TABLE [dbo].[Store]  WITH CHECK ADD  CONSTRAINT [FK_Store_TopCustomer] FOREIGN KEY([TopCustomer])
REFERENCES [dbo].[Customer] ([CustomerId])
GO
ALTER TABLE [dbo].[Store] CHECK CONSTRAINT [FK_Store_TopCustomer]
GO

问题:


如何将TopCustomer关联映射到Customer的单个实例,而不在Customer类上创建额外的导航属性?

听起来您已经有了模型工作和映射了

但是您只需要删除额外的导航属性

如果您想删除导航属性,它非常简单(尽管您不能使用标准的EF设计器)

您只需在XML编辑器中打开EDMX文件(在VS中非常简单),然后从客户实体中删除不需要的

这样,关系仍然存在于模型中,但在类中只能从 Store.TopCustomer

你不能走另一条路

希望这有帮助

亚历克斯


Microsoft Program Manager实体框架团队。

对不起,您使用哪个应用程序进行映射?