私は現在、プロジェクトにリレーショナルデータベースを組み込もうとしています。私のプロジェクトでは、RDBMSの実装前に、通常、私は正常にこのコードを自分の希望する値にアクセスすることができます:asp.netエンティティフレームワークを使用してSQLの外部キーでデータを取得する方法?
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テーブルを通じてブランドのテーブルに名前と呼ばれるフィールドの値にアクセスできるようにすることです。私は本当にこれの答えを見つけていない。私はあなたがこの1つで私を助けることができることを願っています。
最も簡単な方法は、2つのステップでそれを行うことです。まずidを取得し、そのidを持つオブジェクトを見つけます。 – pijemcolu