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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Basic .NET

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

1689閲覧

EntityType 'Memo' has no key defined. Define the key for this EntityType. エラーが解決できません。

Eltk

総合スコア51

Visual Basic .NET

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2020/04/25 04:12

編集2020/04/25 09:47

ASP.NET MVCを使って初めて開発することになりまして、勉強のために簡単なメモアプリを作成中です。
書籍「ASP.NET MVC5 実践プログラミング」を読んだり、ネットの記事を参考にしながら、
少しずつ理解しているところなのですが、参考記事がほぼC#で書かれたものが大半を占めており、
VBでの書き換え方がわからず困っております。

前提・実現したいこと

マイグレーション機能を使って、テーブルを新規作成したいです。

発生している問題・エラーメッセージ

パッケージコンソール上で「Add-Migration InitialModels」と入力し実行しましたところ、 以下のエラーが発生しました。 One or more validation errors were detected during model generation: MVCtrial.Memo: : EntityType 'Memo' has no key defined. Define the key for this EntityType. Memoes: EntityType: EntitySet 'Memoes' is based on type 'Memo' that has no keys defined.

該当のソースコード

VisualBasic

1※ファイル名:Memo.vb(参考記事①をもとに作成) 2 3Imports System.ComponentModel.DataAnnotations 4 5Public Class Memo 6 7 Public Class Memo 8 <Key()> 9 Public Property MemoId() As Integer ' ID 10 11 Public Property Title() As String ' タイトル 12 Public Property Text() As String ' 本文 13 Public Property CreatedAt() As DateTime ' 作成日時 14 Public Property UpdatedAt() As DateTime ' 更新日時 15 End Class 16 17End Class

VisualBasic

1※ファイル名:MVCtrialContext.vb(参考記事②をもとに作成) 2 3Imports System.Data.Entity 4 5Public Class MVCtrialContext : Inherits DbContext 6 Public Property Memoes As DbSet(Of Memo) ' Memoesテーブル 7End Class

試したこと

以下の記事を参考にしました。

https://www.atmarkit.co.jp/fdotnet/aspnetmvc3/aspnetmvc3_03/aspnetmvc3_03_01.html

https://www.atmarkit.co.jp/fdotnet/aspnetmvc3/aspnetmvc3_03/aspnetmvc3_03_02.html

https://densan-labs.net/tech/codefirst/migration.html

補足情報(FW/ツールのバージョンなど)

統合開発環境
Visual Studio2019
(言語:VB.NET、プロジェクトテンプレート:ASP.NET Webアプリケーション MVC)

使用DB
SQL Server 2019(詳細は添付画像をご参照ください)
Windows認証で接続しております。

使用PC
Windows10

※平日は仕事のため、返信が19:30以降になります。
※休日の返信は不定期です。
申し訳ございませんが、どうぞよろしくお願いします。

イメージ説明

【以下はコメント欄参考用画像になります】
イメージ説明

イメージ説明

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/04/25 06:42

DB は何ですか? 参考にしている ①, ② の記事の SQL Server Compact ですか? そうではなくて、LocalDB, SQL Server でもその記事の通りにやれば自動的に DB は生成されるはずなのですが・・・
Eltk

2020/04/25 08:34

>SurferOnWww様 DBは SQL Server 2019でWindows認証で接続しております。 ※質問内容に追記しました。 参考記事ありがとうございます。 C#で書かれていたので、確実に大丈夫かどうかはわかりませんが、自分が質問内容に添付しているコードと比較して大きな抜けはないかと思います。 一点、 「データベースコンテキストの作成」の項目で 「using ContosoUniversity.Models;」と書かれている箇所をVBに書き直して、 「Imports ContosoUniversity.Models」としましたが、 逆にエラーが発生しました。 ※エラーの詳細内容も画像添付させていただいておりますので、ご確認をお願いいたします。
退会済みユーザー

退会済みユーザー

2020/04/25 09:27 編集

SQL Server Management Studio は SQL Server ではありません。ただの管理ツールです。前にも同じことを言いませんでしたっけ? 上のコメントで紹介した「チュートリアル: MVC 5 を使用した Entity Framework 6 Code First の概要」で言語を C# から VB.NET に代えてトライしているのですか? であれば、質問を編集してそのことを追記してください。そしてチュートリアルのどこまで問題なく進むことができて、どこで問題が出て、追加した画像のエラーが出ているのかを書いてください。 そうではなくて、あくまで質問者さん独自に書いたコードをベースに話をしたいということであれば(追加したエラーメッセージ画像を見るとそう見えます。何も知らない初心者がめちゃくちゃやってる感じ)、あなたが何をやっているのか見当がつかず私はフォローできませんので撤退します。
Eltk

2020/04/25 09:56

>SurferOnWww様 きちんと理解できておらず、すみませんでした。 SQL Server Management Studioの添付画像は、必要かどうかわからなかったため、念の為添付しました。 補足情報にも書かせていただいている通り、SQL Server 2019を使用しております。 チュートリアルの件ですが、 サイトに載っている「作成予定物」が自分のものとは全く異なるため、 各ファイルの作成に関してC#からVBへの変換を一つ一つ行うと、その変換の仕方を調べたり、またこちらで質問を何度もすることになりそうで、こちらの返信がまた長引きそうで本末転倒になると思いましたので、 参考にしましたのは、「データモデルを作成する」と「データベースコンテキストの作成」の項目のみです。 参考箇所の内容が自分のVBコードと同じかどうかは、自分が参考記事として掲載しております①を参考に行いました。 (※この記事はC#とVBの両方の書き方が載っていたため) ベテランの方から見られて、今の自分がめちゃくちゃな状態ということであれば、 いただいたサイト通りにVB版で作り、解決できるかどうかをいったんの目標として切り替えたいと思います。 上記で申し上げましたように、C#からの変換方法を少しずつ調べながら行うことになりますので、いったんこの質問をクローズしたいと思います。 方向性のアドバイスをいただき、ありがとうございました。
退会済みユーザー

退会済みユーザー

2020/04/25 11:00

はっきり言って、めちゃくちゃです。ここで質問して解決できるようになるにはもっと勉強が必要かと・・・
退会済みユーザー

退会済みユーザー

2020/04/25 13:22

C# ⇔ VB.NET 変換サービスがあるので、上のコメントで紹介した「チュートリアル: MVC 5 を使用した Entity Framework 6 Code First の概要」をベースにアプリを作る際はそれを使ってみてください。 Telerik Code Converter https://converter.telerik.com/ 変換は完ぺきではないですが、人が読んで理解するには十分だと思います。変換結果を見ても理解できない場合は、ここで質問する前に理解できるまで勉強が必要かと思います。
guest

回答1

0

自己解決

コメント欄にも書いておりますように、こちらの質問の解決をするために、別の課題解決が必要になりましたので、いったんクローズさせていただきます。

投稿2020/04/25 11:35

Eltk

総合スコア51

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

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

退会済みユーザー

退会済みユーザー

2020/04/25 13:25

C# ⇔ VB.NET 変換サービスがあるので、上のコメントで紹介した「チュートリアル: MVC 5 を使用した Entity Framework 6 Code First の概要」をベースにアプリを作る際はそれを使ってみてください。 Telerik Code Converter https://converter.telerik.com/ 変換は完ぺきではないですが、人が読んで理解するには十分だと思います。変換結果を見ても理解できない場合は、ここで質問する前に理解できるまで勉強が必要かと思います。
Eltk

2020/04/25 13:33

>SurferOnWww様 そんな便利なサービスがあるんですね。 活用させていただきます。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問