【发布时间】:2017-06-29 12:43:38
【问题描述】:
我现在正在尝试将关系数据库合并到我的项目中。在我的项目中实现 rdbms 之前,通常我可以通过以下代码访问我想要的值:
public static string guitar { get; set; }
public static List<stringInstrumentItem> GetGuitarItems()
{
List<stringInstrumentItem> list2 = new List<stringInstrumentItem>();
MusicStoreDBEntities obj2 = new MusicStoreDBEntities();
list2 = (from g in obj2.stringInstrumentItems where g.brand == guitar select g).ToList();
return list2;
}
但是现在我已经在我的 sql 脚本中设置了一个外键,g.brand 不起作用,因为它不再包含文本值,它现在是一个名为 brandId 的 int。为了更好地理解我的问题,这里是 stringInstrumentItem 表的 sql 脚本。这是我设置外键brandId 引用品牌表及其主键的地方。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[stringInstrumentItem](
[itemId] [int] NOT NULL,
[type] [varchar](50) NOT NULL,
[brandId] [int] FOREIGN KEY REFERENCES brand(brandId),
[model] [varchar](50) NOT NULL,
[price] [float] NOT NULL,
[itemimage1] [varchar](255) NULL,
[itemimage2] [varchar](255) NULL,
[description] [text] NOT NULL,
[necktype] [varchar](100) NOT NULL,
[body] [varchar](100) NOT NULL,
[fretboard] [varchar](100) NOT NULL,
[fret] [varchar](50) NOT NULL,
[bridge] [varchar](100) NOT NULL,
[neckpickup] [varchar](100) NOT NULL,
[bridgepickup] [varchar](100) NOT NULL,
[hardwarecolor] [varchar](50) NOT NULL,
PRIMARY KEY CLUSTERED
(
[itemId] 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
SET ANSI_PADDING OFF
GO
现在是品牌表。这是 stringInstrumentItem 所指的表。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[brand](
[brandId] [int] NOT NULL,
[type] [varchar](50) NOT NULL,
[name] [varchar](50) NOT NULL,
[image] [varchar](255) NULL,
PRIMARY KEY CLUSTERED
(
[brandId] 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
SET ANSI_PADDING OFF
GO
我的目标是能够使用 asp.net 和实体框架通过 stringInstrumentItem 表访问品牌表中名为 name 的字段的值。我还没有真正找到答案。我希望你们能帮助我解决这个问题。
【问题讨论】:
-
最简单的方法是分两步完成。先获取 id,然后找到具有该 id 的对象。
标签: c# asp.net sql-server foreign-keys relational-database