Entity Framework - 複合型のマッピング先のカラム名を変更する

Entity Frameworkで特に指定しない場合、複合型(ComplexType)は「{プロパティ名}_{複合型のプロパティ名}」という名前のカラムにマッピングされます。たとえば次のようになります。 エンティティ // メールアドレス(複合型) public class MailAddress { …

ASP.NET MVC - コレクションのコレクションにバインドする

できるかな?できるよね?と思って試したらやっぱりできたのでメモ。 コレクションにバインドする まずはおさらいということでコレクションにバインドするサンプルです。 name属性に配列のようにインデックスを指定します。 ビュー @using (Html.BeginForm()…

LINQでn個ずつグルーピング

前に少し考えたときは思いつかなかったのですが、今日ふと思い立って書いてみました。 コレクションの要素を5個ずつでグルーピングするサンプルです。 static void Main(string[] args) { var letters = "abcdefghijklmnopqrstuvwxyz".ToCharArray(); Consol…

dapper dot net - 1対多のテーブルをコレクションプロパティにマッピングする

いつものごとくタイトルが微妙な気もしますが、やりたいことは「DBに注文テーブルと注文明細テーブルがあって、注文明細のコレクションを持っている注文にマッピングしたい」といった感じのことです。 てことでマッピングするクラスです。 // 注文 class Ord…

Entity Framework - SkipメソッドとTakeメソッドを使うとFETCH句とOFFSET句が使われることを確認する

SQL Server 2012からOFFSET句とFETCH句が追加されて、クエリだけでページングを実現できるようになりました。Entity Frameworkを使っているときに、SkipメソッドとTakeメソッドを使うとOFFSET句とFETCH句が使われるの?ってあたりが気になったのでログで発行…

SqlCommandがタイムアウトした時にスローされるSqlExceptionを確認する

SqlCommandにはタイムアウトの時間を設定するSqlCommand.CommandTimeoutプロパティがあります。 SqlCommand.CommandTimeout プロパティ (System.Data.SqlClient) MSDNからもわかりますがタイムアウトした時にはSqlExceptionがスローされます。 このSqlExcept…

LINQでクロス結合

クロス結合(CROSS JOIN)はLINQを使ってどうやって書くんだろうと気になったので調べてみました。 SQLでもほとんど使わないのでC#でもほとんど使わないとは思いますが・・・。重複ありのすべての組合わせを出したいときに使えるかなーと思います。まぁほと…

「ファイル名を指定して実行」で起動する管理ツールのメモ

Win + Rのあれですね。 主にWebサーバやDBサーバを管理するときに使いそうなコマンドです。というより最近覚えたコマンドとたまに使うので覚えたいコマンド。 管理ツール コマンド IISマネージャー inetmgr SQL Server Management Studio ssms コンピュータ…

Json.NET - enumを文字列でシリアライズする

久しぶりにJson.NETのメモです。 Json.NETを使ってenum値をJSONに出力するとき、デフォルトでは数値になります。数値だとぱっと見わかりにくいので文字列で書き出したいときがあると思います。そんなときはStringEnumConverterを使います。 使い方はたぶん2…

cURLのメモその2

cURLの個人的なメモその2です。 その1はこちら。 とりあえず覚えた cURL のオプション - いちろぐ 今回はファイルのアップロードとダウンロードです。 ファイルのアップロード multipart/form-dataでファイルを送信するには-Fオプションを指定します。name=v…

TypeScript - アロー関数でオブジェクトリテラルを返そうとしてちょっとはまった話

いい解決方法が見つかったわけではありませんが、ちょっとはまった記念に残しておきます。 TypeScriptで次のようにアロー関数を使って単にオブジェクトリテラルを返そうとしたのですが、コンパイルエラーに・・・。 // TypeScript [1, 2, 3].map((value, ind…

T-SQL - TOP句とパラメータ

SELECT文のTOP句にパラメータを使用できることを初めて知りました。 こんな感じ。Dapperでクエリを実行するサンプルです。 // TOP句に@countを指定する var sql = @" select top (@count) * from (values (N'ホルモン', 490), (N'カルビ', 880), (N'キムチ',…

再帰トリガーとRECURSIVE_TRIGGERSオプションのメモ

UPDATEトリガーで自身を定義したテーブルに対してまたUPDATEしたら無限ループに入らないの?と疑問に思ったので試してみましたと言う内容です。 説明するよりクエリを見てもらった方がわかりやすいと思うので、さっそくテーブルとUPDATEトリガーを。UPDATEト…

DMLトリガーを試す

トリガーをほぼ使ったことがないトリガー初心者なのですが、使う機会がでてきそうで調べていました。とりあえずDMLトリガーの、さらにAFTERトリガーにしぼって気になったところを試してみたので、少しメモとして残しておきます。 まずはテスト用のテーブルと…

PRINT・RAISERRORとSqlConnection.InfoMessageイベント

T-SQLのPRINTを使うとクライアントにメッセージを通知できます。そのメッセージはSqlConnection.InfoMessageイベントで取得できます。 また、RAISERRORでも重大度(severity)が10以下の場合は、同様にSqlConnection.InfoMessageイベントでメッセージを取得…

再帰CTE(共通テーブル式)で階層構造のパスを作る

検索すると再帰CTEのサンプルはいろいろ見つかりますが、自分で書いたクエリを残しておきたいなと思って書いてみました。おさらいというかメモというか。 共通テーブル式を使用する再帰クエリ 上記MSDNにもありますが、再帰CTEのざっくりした書き方はこんな…

Entity Framework - パラメータを渡してSQLを実行する

Entity Frameworkを使って直接SQLを実行したいときがあって、さらにパラメータの渡し方が気になったので試していました。 まず直接SQLを実行するメソッドは2つ用意されています。 Database.SqlQuery メソッド (System.Data.Entity) Database.ExecuteSqlComma…

TypeScript - lib.d.tsの場所

lib.d.tsの場所のメモです。 ローカルだと(Visual Studioがインストールされていれば)ここ。 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TypeScript\lib.d.ts またはcodeplexにも。 http://typescript.…

IIS - MWAでWebアプリのIP制限を操作する

MWA(Microsoft.Web.Administration)を使って、IIS上にあるWebアプリのIP制限を操作するC#のコードを書いてみましたので残しておきます。 MWAを使うにはプロジェクトの参照にMicrosoft.Web.Administration.dllを追加する必要があります。私のローカル環境(…

t-sql - backup database と restore database で変数を使う

backup database や restore database で DB名のところに変数を指定できます。 DB名やテーブル名などでは変数が使えないと思っていたのでちょっとした発見でした。ということでクエリを残しておきます。 BACKUP (Transact-SQL) RESTORE (Transact-SQL) backu…

Entity Framework - ログ出力でトランザクションを確認してみる

Entity Framework のトランザクションについて、前回と同じようにログを確認してみます。Entity Framework のトランザクションのデフォルトの動きやトランザクション自体の使い方はこちらが参考になります。 Entity Framework Working with Transactions (EF…

Entity Framework - ログ出力を試してみる

Entity Framework 6でログ出力できるようになったことを知ったのでちょっと試してみました。 ログを出力するには DbContext.Database.Log プロパティに string を受けとる Action デリゲートを渡します。 using (var context = new AppDbContext()) { contex…

ASP.NET Identity - プロキシ環境下で外部サービスによるユーザ認証を行う

ローカルの開発環境などプロキシを使っている環境下で、ASP.NET Identity を使って外部サービスによるユーザ認証を行うには、サーバ間通信の際にプロキシの設定を行う必要があるのですが、それはどこでするの?ってお話です。 たとえば Google の OAuth 2.0 …

SqlCommand の実行を SQL Server Profiler でトレースしてみた

SqlCommand の ExecuteReader でクエリを実行する時にパラメータを渡すと sp_executesql を使って実行されます。パラメータを使わないと sp_executesql は使われないようです。 MSDN より引用します。 ADO.NET での side-by-side 実行 .NET Framework versio…

とりあえず覚えた cURL のオプション

cURL のオプションはたくさんあります。たまに使う頃には忘れているということを何度か繰り返しています。なので最低限のことをするために覚えたというか思い出すためというか。 とりあえずヘルプ curl -h ずらりと出てきますね。 シンプルに GET リクエスト…

ASP.NET Identity と Katana の MSDN などのリンク先

ASP.NET Identity のサンプルを試したり調べたりしていると、ASP.NET Identity と Katana(Microsoft OWIN)それぞれにあるクラスがこれはどっちだっけ?とかリファレンスどっちだろ?とかなるときがあるので、自分用にメモしておきます。 ASP.NET Identity …

ASP.NET Identity 2.0.0 beta1 のサンプルを動かしてみた

先月 ASP.NET Identity 2.0.0 beta1 がリリースされて、nuget でサンプルアプリケーションをインストールできるので試してみました。 Announcing preview of Microsoft.AspNet.Identity 2.0.0-beta1 - .NET Web Development and Tools Blog - Site Home - MS…

ASP.NET Identity - 外部サービスによる認証のエラーログを有効にしてみる

最近 ASP.NET Identity とか Katana の勉強を始めました。 Introduction to ASP.NET Identity : The Official Microsoft ASP.NET Site Katana Project - Home とりあえず小ネタのメモを1つ。 MVC のプロジェクトで google や facebook のログインがうまくい…

SQL Server - OFFSET 句と FETCH 句

SQL Server 2012 からですが、ORDER BY 句に OFFSET 句と FETCH 句が追加されています。クエリだけでページングを実現できるので素敵ですね。 ということで試してみたのでクエリなどを残しておきます。 まずクエリはこんな感じです。 select * from テーブル…

TypeScript - get アクセサだけを定義したメンバへの代入でコンパイルエラーにならない

get アクセサだけを定義したメンバに値を代入してもコンパイルエラーにならないようです。 サンプルコードです。 class Sample { private _value: number; constructor(value: number) { this._value = value; } // get アクセサだけ定義 get value() { retu…