てぃぐれのプログラマwiki

ワクワクに従う

ChangeTracking 変更追跡処理【C#/Blazor/EntityFramework】

経緯 先日、EntityFrameworkの変更追跡がSQLRawを使うと難しくなる話をした。 なにか良いライブラリはないかものかと、ダメもとでぐぐっていたところ、よさげなライブラリをみつけた。 POCO クラスに対する変更追跡ライブラリ ChangeTracking を使ってみた -…

EntityStateとSQLRaw 【C#/Blazor/EntityFrame】

経緯 bindしているデータの変更管理をするときみんなはどうしているだろうか。 Datatableを使用していた時、Rawstateというものがあった。 Added,modified,unchange等、データの行ごとに状態を持ち、追加するもの、変更するもの等を管理していた。 さて、Ent…

boolにはbit型【SQLServer】C# blazor

経緯 フラグ処理をDBで管理したいときint型にする人がいる。それに従ったら、つらい目にあったので、記録する。 int型とbool型 C#でint型とbool型の型変換は一つConvert.to〇〇を挟むことになる。しかし、これではbindはうまくいかない。 checkboxにbindさせ…

権限設計のコツ 【DB】

waterlow2013.hatenablog.com 経緯 業務で権限機能の設計をする必要が出てきたので、インプット。 ケース 上記サイトからのインプットで今自分がしたいことを抽出してみる。 ①ロールだけパターン ユーザー:ロール = 1:1 ロール:アビリティ = 1 : n ②admin:bo…

EntityFrameworkをSQLで【C#】

経緯 EntityFrameworkに感動と失望を抱いていた中、「ある程度結合するようならSQLで書いたほうがいいよ」という鶴の一声を聞く。 ある程度ってどれくらい!? まだ、開発をクエリーベースにするなら間に合う!! SQLのほうが速い これは実際に試していないのだ…

EntityFramework 多対多【C#】

経緯 Entity Frameworkで多対多を扱った記事が少なすぎる気がする。 というかSQLをごりごり書いていた身からすると、かなり扱いづらい。 たとえ記事があっても、Controllerでの記述方法が全然見つからない。 新人の子が多対多でデータを取得するのに一緒につ…

これがDTO!? 役だった話【C#】

経緯 tigretic.hatenablog.com 以前、DTOとはというタイトルでざっくり紹介したデザインパターン。自分で書いたものの、ちょっとしっくりこなかった。 自分はSQLをがりがり書くとこにいたせいか、モデルクラスからさらにDTOのクラスにして成形するというがあ…

ファンクションの使い方 NULL系【ORACLE】

■NVL(A,B) AがnullならBを ■NVL2(A,B,C) Aがnullではない場合、Bを、nullならCを ■COALEACE(A,B,C,D,E) AがnullではないならAを、そうでなければBを、BがnullならCを... ■NULLIF(A,B) A == BならNULLを、そうでなければAを

json作成のためのC# 【C#】

json2csharp.com 経緯 C#でjsonを扱うとき、特にapiを叩いて、帰ってきた値をjsonからオブジェクトを作成するとき。値が多すぎてクラス作るの面倒くせーーーとなるときに見つけた神サイト。 jsonからクラスオブジェクトにするときは、jsonに沿った構成のもの…

集計関数 問合せできない?できる? 【ORACLE】

経緯 集計関数の問合せできるできないルールがちょっと混乱することがあるので、解いて行きたい。 1,集計関数でネストしている場合 SELECT MIN(AVG(sal)) FROM emp; employees の salary の 平均avg の 最小値min が欲しい。一見良さそうであるが、group by…

知らなかった副問合せ【ORACLE】

ANY ANYはなかなか使わないけど、selectしたもののうち一つでも条件に合えば返す X > ANY(select Y from Z) → ZのYのうちのひとつを上回ればtrue → X > select MIN(Y) from Z で良さそう 速さはANYの方が速そう ALL select したもののうち全ての条件に合えば…

OSI参照モデル 各層の特徴【ネットワーク】

アプリケーション層 メールやブラウザなどで使われるプロトコルを規定する層 ユーザーが触れる層である。 ↓ プレゼンテーション層 文字コードや圧縮形式を標準化してくれる層 この層のおかげで、ほかの環境のサーバーにデータが行っても、文字化け等を防いで…

PDU プログラムデータユニット 【ネットワーク】

PDU プログラムデータの単位(ユニット)は層によって異なる。 トランスポート層 - セグメント ネットワーク層 - パケット データリンク層 - フレーム 層が深くなるにつれてカプセル化されていくので フレーム > パケット > セグメント という大きさになる。

部品を均等に並ばせたい【Android】アプリを作りたい Part6

部品を均等に並べたい chainの使いかた 【AndroidStudio】ConstraintLayoutで、部品を均等に並べる方法(chain) - YouTube 縦に並べる vertical 横に並べる horizontal CSSよりよっぽど楽や。。

OSI参照モデルの画期的な覚え方【ネットワーク】

アプセトネデブ 7層 ー アプリケーション層 6層 ー プレゼンテーション層 5層 ー セッション層 4層 ー トランスポート層 3層 ー ネットワーク層 2層 ー データリンク層 1層 ー 物理層 いやいや、アプセトネデブは意味わからんやろとなるだろう。自分…

CTASとUNUSED【ORACLE】

CTAS CTAS create tabls as select selectを使い他のテーブルからデータと構造をコピーしてテーブルを作ることができる。 移される制約はnot nullだけである。 where句を指定することでコピーしたいデータや、件数を0にするような条件句でテーブルだけ作ると…

シーケンスとシノニム【ORACLE】

知らなかったシーケンスの使い方 シーケンスなんてORACLEを使ってる人からすれば、なんてことはない、連番を採番するオブジェクトだ。SQL SERVERのidentityのような動きをする。 しかし、別々のテーブルの主キーに使い、IDを被らせないという方法ができるの…

リスト表示【Android】アプリを作りたい Part5

リスト表示をやってみる 【はじめてのKotlin(18)】ListView(リスト表示) - YouTube クリックしたリストの文字列が下部でトーストされる。 val lv:ListView = findViewById(R.id.lv)val data = arrayOf( "ライオン","クマ","キリン","ゾウ","パンダ","コア…

知らなかった外部制約の仕様【ORACLE】

制約 alter table [table name] disable constraint [constraint name] cascade; → 特定の制約をdisableにする場合、その制約に関連する他の制約も外す on delete cascade →削除された行を参照している子表の行も併せて削除する on delete set null →削除さ…

画面遷移時に値を渡す【Android】アプリを作りたい Part4

値を渡す 【はじめてのKotlin(8)】putExtra(値の受け渡し) ※概要欄に訂正あり - YouTube 遷移) - YouTube コード 遷移元 inputExtraでキー:MyNameとペアで送る var v:EditText = findViewById(R.id.et)var btn:Button = findViewById(R.id.button)btn.setOn…

画面遷移【Android】アプリを作りたい Part3

画面遷移をやってみる 【はじめてのKotlin(7)】intent(画面遷移) - YouTube 遷移元 btn.setOnClickListener{ val intent = Intent(this,SecondActivity::class.java) startActivity(intent)} 遷移先 btnBack.setOnClickListener{ finish()} 3層構造の場合 …

Viewの仕様【Oralce】

WITH CHECK OPTION ・UPDATEとINSERTの時にVIEWのselect文のwhere句の条件を満たしていない場合、エラーとなる。 ・DELETEはエラーにならない。(DELETE後にデータは残らないからチェックできない) FORCE ・参照するオブジェクトがない場合でもとにかくVIEWを…

リスト表示【Android】アプリを作りたい Part2

リスト表示をやってみる 【Androidプログラミング】ListView リストの表示 (おまけ:AlertDialog) - YouTube やってみた これは絶対使うだろう。メモメモ。 HowcangのチャンネルではKotolinも勉強できるから引き続きよろしくお願いします。

足し算アプリ【Android】アプリを作りたい Part1

経緯 多分、エンジニアになったきっかけって「この」アプリ作りたいだったんだろうな。でも、紆余曲折して、そういうわくわくを忘れたり、逃げたりしていたので、また逃げるかもしれないけど、一歩ずつ進んでいきたい。 足し算アプリを作ってみる https://ww…

CSSの設計ってどうやって?【CSS】

CSS

ユーティリティファーストCSSのススメ〜なぜ、セマンティックなclass命名は失敗するのか?|菱川拓郎|note 経緯 CSSの設計ってどうやってるんだろうと触ってみると思う。もともと、WindowsアプリケーションのエンジニアだとCSSとか触らない。 前回の記事でU…

CSSの設計 その1【CSS】

CSS

UIコンポーネントにはマージンをつけるな!絶対にだ!! - Qiita 経緯 BlazorStrapというUIフレームワークにCSSを充てる方法を探していて、見つけた記事。CSSの初心者には、とても参考になる記事だった。 UIコンポーネントにはマージンをつけない というか可…

BlazorStrapでモーダル【Blazor】

経緯 Blazorというjsが使いにくい環境でjsのように動きを出させるのは一苦労するもの。そこで、「Blazor モーダル」と調べると出てくるBlazorStrapというUIフレームワーク?を使ってみることにする。 始め方 ここを見てやるとできる BlazorStrap V5 モーダル…

一意制約とインデックス自動作成【SQLServer】

経緯 最近、プロジェクトでSQLServerを使用し、設計を行っている。 Oracleでは一意制約をかけると一意索引が自動で作成されていたが、SqlServerではどうだろうか。 調査結果 「制約に依存しない一意インデックスを作成することの間に大きな違いはありません…

Blazor Server vs Assembly

経緯 Visual Studio でBlazorのアプリを作るときに、Web Assemblyで作るの Server で作るの?とちょっと良く違いが分からなくなったので、自分なりに考えてみた。 WebAssemblyとは? 低水準のアセンブラ言語でweb上で動いてくれる。 メリットは? スタンドア…

.NET CORE MVC の自動コード作成のためのルール【C#】

C#

経緯 元々WEB系ではない自分がWeb開発で.ASP.NET Core MVCをノリで使っていたらドはまりしてしまった。 ルール .ASP.NET Core MVCでは、ルールに沿った開発をすることで自動でコードを生成させて、開発の時間を短縮させるようだ。これは、昨今のwebでは割と…