2015-01-01から1年間の記事一覧
前回は外部キーの一覧を取得するクエリを書いてみました。 ichiroku11.hatenablog.jp 今回は外部キーのときと同じようにテーブル名やカラム名を含めて主キーの一覧を取得するクエリを書いてみました。 select i.name as [主キー名], ic.index_column_id as […
テーブル名やカラム名を含めて外部キーの一覧を取得するクエリです。探したら似たようなクエリが見つかる気もしますが練習もかねて書いてみました。また使うことがあるかなと。 select fk.name as [外部キー名], fkc.constraint_column_id as [外部キーカラ…
Includeメソッドを使って関連エンティティを読み込むとき、読み込む関連エンティティをフィルタしたいことがあると思います。というかありました。 Includeメソッドで書けるのかなと思って調べましたがどうもできない様子。代替案がないかなと思って調べたと…
複合外部キーを使うことになったんですが、外部キー制約を設定するカラムの1つの値がNULLの場合に想像していた動きと違ったのでメモを残しておきます。(想像と違うのはわたしだけかもですが) 次のようなテーブルがあったとします。SampleBに外部キー制約が…
WHERE句にEXISTSを使うようなデータ取得をEntity Frameworkで実行したい場合、LINQのAnyメソッドを使うようです。想像通りという気もしますが適当な1対多のテーブルとデータで試して出力されるクエリを確認してみます。 まずはモデルとDBコンテキストを用意…
SQL Serverでnull以外の値でユニークにしたいときがあると思います。 先に方法を書くと「フィルター選択されたインデックス(filtered index)」を使うことでnull以外の値でユニークを実現できます。 フィルター選択されたインデックスの作成 ということで今…
この前ちょっとはまったのでメモ。まさしくこれ。 jQuery Core 1.9 Upgrade Guide | jQuery Prior to 1.9, an ajax call that expected a return data type of JSON or JSONP would consider a return value of an empty string to be a success case, but r…
Entity FrameworkでstringのContainsメソッド、StartsWithメソッド、EndsWithメソッドを使って文字列を検索すると、LIKE演算子で「%」を使ったselect文が作成されます。 MSDNとかのドキュメントっぽいものは見つけられませんでしたが、適当なエンティティとD…
Entity Frameworkで特に指定しない場合、複合型(ComplexType)は「{プロパティ名}_{複合型のプロパティ名}」という名前のカラムにマッピングされます。たとえば次のようになります。 エンティティ // メールアドレス(複合型) public class MailAddress { …
できるかな?できるよね?と思って試したらやっぱりできたのでメモ。 コレクションにバインドする まずはおさらいということでコレクションにバインドするサンプルです。 name属性に配列のようにインデックスを指定します。 ビュー @using (Html.BeginForm()…
前に少し考えたときは思いつかなかったのですが、今日ふと思い立って書いてみました。 コレクションの要素を5個ずつでグルーピングするサンプルです。 static void Main(string[] args) { var letters = "abcdefghijklmnopqrstuvwxyz".ToCharArray(); Consol…
いつものごとくタイトルが微妙な気もしますが、やりたいことは「DBに注文テーブルと注文明細テーブルがあって、注文明細のコレクションを持っている注文にマッピングしたい」といった感じのことです。 てことでマッピングするクラスです。 // 注文 class Ord…
SQL Server 2012からOFFSET句とFETCH句が追加されて、クエリだけでページングを実現できるようになりました。Entity Frameworkを使っているときに、SkipメソッドとTakeメソッドを使うとOFFSET句とFETCH句が使われるの?ってあたりが気になったのでログで発行…
SqlCommandにはタイムアウトの時間を設定するSqlCommand.CommandTimeoutプロパティがあります。 SqlCommand.CommandTimeout プロパティ (System.Data.SqlClient) MSDNからもわかりますがタイムアウトした時にはSqlExceptionがスローされます。 このSqlExcept…
クロス結合(CROSS JOIN)はLINQを使ってどうやって書くんだろうと気になったので調べてみました。 SQLでもほとんど使わないのでC#でもほとんど使わないとは思いますが・・・。重複ありのすべての組合わせを出したいときに使えるかなーと思います。まぁほと…