質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
INSERT

INSERTとは、行を追加する、コンピュータのデータベース言語SQLにおけるデータ操作言語(DML)ステートメントの1つである

LINQ

LINQとはLanguage INtegrated Queryの略で、「統合言語クエリ」という意味です。C#やVisual Basicといった言語のコード内に記述することができるクエリです。

Q&A

解決済

2回答

6280閲覧

LINQ to SQLでIDENTITY属性の項目にINSERTでエラー

TOEICengineer

総合スコア36

INSERT

INSERTとは、行を追加する、コンピュータのデータベース言語SQLにおけるデータ操作言語(DML)ステートメントの1つである

LINQ

LINQとはLanguage INtegrated Queryの略で、「統合言語クエリ」という意味です。C#やVisual Basicといった言語のコード内に記述することができるクエリです。

0グッド

0クリップ

投稿2016/07/10 13:30

LINQ TO SQL でINSERT素養とすると、

IDENTITY_INSERT が OFF に設定されているときは、テーブル 'Users' の ID 列に明示的な値を挿入できません。

と例外が発生してしまいます。

C#

1 var devDb = new DevDataClassesDataContext(devCon)) 2 User UserObj = new User(); 3 UserObj.FirstName = "Kazuna2"; 4 UserObj.LastName = "Hirayama"; 5 UserObj.NickName = "HiraKazu"; 6 devDb.Users.InsertOnSubmit(UserObj); 7 devDb.SubmitChanges();
USE [dev] GO /****** Object: Table [dbo].[Users] Script Date: 2016/07/10 22:28:08 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Users]( [UserID] [int] IDENTITY(1,1) NOT NULL, [FirstName] [nvarchar](50) NULL, [LastName] [nvarchar](50) NULL, [NickName] [nvarchar](50) NULL, CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED ( [UserID] 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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

LINQ to SQL で IDENTITY 列を持ったテーブルに行を挿入した時の IDENTITY 列の値の取得をご覧下さい。IDENTITY の設定を「はい」にする事で、AutoSync=AutoSync.OnInsert が指定されるはずです。
これが指定されていれば、ID はデータベースから自動的に取得されます。

投稿2016/07/11 03:29

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TOEICengineer

2016/07/11 14:09

ありがとうございます。GUIdで上記プロパティを変えたらうまくいきました
guest

0

[DBコンテクスト].Database.ExecuteSqlCommand("SET IDENTITY_INSERT Table ON")

みたいな感じにしてあげればどうでしょう?

SET IDENTITY_INSERT (Transact-SQL)

テーブルの ID 列に明示的な値を追加することを許可します。

投稿2016/07/11 03:06

dojikko

総合スコア3939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TOEICengineer

2016/07/11 14:09

なるほど、SQLを発行してみる手がありましたか~試してみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問