【MVC5】【Entity Framework】レコードの一部を更新するには、取得して更新する

スポンサードリンク

ポイント

  • スキャフォールディングによる自動生成のコードではすべてのカラムを更新してしまう。
  • ウェブページからレコードの一部分を受け取って更新したい場合、自動生成コードを使うと受け取っていないカラムの値が無くなってしまう。
  • よって、Find でレコードを取得し、値を変更した後、SaveChanges で更新する。

“【MVC5】【Entity Framework】レコードの一部を更新するには、取得して更新する”の続きを読む

Entity Framework で複合主キーを設定する方法と Find の使い方

エラーとなったダメなモデル例

[Key]
public int GroupId { get; set; }

[Key]
public int UserId {get; set; }

“Entity Framework で複合主キーを設定する方法と Find の使い方”の続きを読む


スポンサードリンク

シンプルな形で、登録や更新ボタンをクリックしたときに確認アラートを表示するコード

MVC5 プロジェクトで、新規登録や更新ボタンをクリックした後に確認のアラートを表示することとなりました。今回はその方法をノートいたします。

シンプルな方法ですが、それゆえに穴がありそうな気もしていますの。その点について、検証等はしておりませんこと、予め申し上げます。

ポイント

  • input タグの onclick 属性に、return confirm('登録してよろしいですか?'); を指定すれば、submit が実行される前に確認アラートが表示される。
  • <input type="submit" value="登録" onclick="return confirm('登録してよろしいですか?');" />

実現するには jQuery?、Bootstrap?JavaScript?、と悩みましたけれども、JavaScript を少し記述するだけで実現できました♪

“シンプルな形で、登録や更新ボタンをクリックしたときに確認アラートを表示するコード”の続きを読む

【MVC5】WebForms に MVC5 を含めたプロジェクトですぐに発生した次の問題への対処方法♪ → ファイルまたはアセンブリ ‘System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’、またはその依存関係の 1 つが読み込めませんでした。見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。 (HRESULT からの例外:0x80131040)

WebForms に MVC5 を含めたプロジェクトですぐに発生した問題

作成環境情報

  • Windows 10 Pro 64 bit
  • Microsoft Visual Studio Community 2015
    Version 14.0.25421.03 Update 3
    Microsoft .NET Framework
    Version 4.6.01038

作成プロジェクト情報

  • .NET Framework 4.6.1
  • ASP.NET Web Application (.NET Framework)
  • ソリューション・プロジェクト名: WebApplication1
  • ASP.NET 4.6.1 テンプレート: Web フォーム
  • フォルダーおよびコア参照を追加する: [x] MVC
  • 認証の変更: 認証なし

エラーを再現する

“【MVC5】WebForms に MVC5 を含めたプロジェクトですぐに発生した次の問題への対処方法♪ → ファイルまたはアセンブリ ‘System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’、またはその依存関係の 1 つが読み込めませんでした。見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。 (HRESULT からの例外:0x80131040)”の続きを読む

Entity Framework で複合主キーを設定する方法

エラーとなったコード

public class User
{
    [Key]
    public int Id { get; set; }
    [Key]
    public int GroupId { get; set; }
    public string Name { get; set; }
}

エラーをよく見てみると

“Entity Framework で複合主キーを設定する方法”の続きを読む

【MVC 5】DB 接続文字列だけ別ファイルに切り出す方法

ポイント

  • プロジェクト直下のフォルダに Web.config がある。同じプロジェクト直下フォルダに接続文字列を定義したファイルを置く。例えばファイル名は connections.config
  • connections.confg には < connectionStrings> の内容をそのまま書く。
  • Web.config では、connectionStrings に configSource 属性のみを書き、その値に connections.config を指定する。

“【MVC 5】DB 接続文字列だけ別ファイルに切り出す方法”の続きを読む

【MVC 5】【Entity Framework 】既存のデータベース・テーブルがある場合のエンティティモデルクラスの作り方

既存のシステム、データベースの特徴

  • Entity Framework 未使用、コードファーストではない。
  • テーブルは Entity Framework のデータモデル規約の則っていない。

キーワード・ポイント

  • Entity Framework
  • Table 属性、Column 属性
  • Fluent API
  • DbContext クラスを通して DB 操作
  • Web.config の を追加することで、Entity Framework の接続も可能となる。
  • 今までの DB 接続も使い続けることが可能

“【MVC 5】【Entity Framework 】既存のデータベース・テーブルがある場合のエンティティモデルクラスの作り方”の続きを読む

【ASP.NET】【MVC5】メール送信時にサーバ接続エラー、送信アドレス誤りエラーを取得したい

ポイント

  • 送信アドレス誤りは同イントラ内限定で検出できた。別ドメインへのメール送信エラーは制御出来ない。
  • 複数のアドレスに送信するときにアドレス誤りを検出するには、SmtpFailedRedipientsException と SmtpFailedRecipientException の両方でキャッチする必要がある。
  • 1 つのアドレスにだけ送信する場合は、SmtpFailedRecipientException のみでよい。
  • 送信できなかったメールアドレスは、SmtpFailedRecipientException.FailedRecipient に格納されている。
  • Host、Port、userName、password に原因がある (つまりサーバに接続できない) 場合は SmtpException でキャッチできる。

他のポイント

  • メールを送るには、MailMessage クラス、SmtpClient クラスの 2 つが必要
  • MailMessage クラスはメール自体を扱うクラス
    • From、To、CC、BCC、添付ファイル、件名、本文などを扱う。
    • メールアドレスの追加は、MailAddress クラスにメールアドレス文字列を渡してインスタンス化したものを使う。
  • SmtpClient クラスはメールを送るときの認証情報を扱うクラス。
    • SMTP サーバ名、ポート番号、ユーザー名、パスワード、SSL の使用などを扱う。
    • ユーザ名、パスワード の追加は、NetworkCredential クラスにユーザー名、パスワード文字列渡してインスタンス化したものを使う。

“【ASP.NET】【MVC5】メール送信時にサーバ接続エラー、送信アドレス誤りエラーを取得したい”の続きを読む

【ASP.NET】【MVC5】SMTP サーバとして Hotmail を使ってメールを送信するサンプル♪【レベル1】

プロジェクト情報・進め方

  • .NET Framework 4.6.1
  • Visual C#
  • ASP.NET Web アプリケーション
  • MVC 5
  • 認証なし
  • Homecontroller の Index アクション、ビューを修正していく
  • SMTP サーバには Hotmail を利用した。Google アカウントは2段階認証や、アプリケーションパスワードなど、面倒事が多いため。

“【ASP.NET】【MVC5】SMTP サーバとして Hotmail を使ってメールを送信するサンプル♪【レベル1】”の続きを読む

【ASP.NET】【MVC5】お試しウェブアプリチュートリアルのエラーを解決

選択したコードジェネレータを実行中にエラーが発生しました : 'Key already exists in table.'

エラー内容

解決方法のポイント

“【ASP.NET】【MVC5】お試しウェブアプリチュートリアルのエラーを解決”の続きを読む