{"id":24998,"date":"2025-11-24T11:11:27","date_gmt":"2025-11-24T11:11:27","guid":{"rendered":"https:\/\/pokecon.jp\/job\/?p=24998"},"modified":"2025-11-24T11:11:27","modified_gmt":"2025-11-24T11:11:27","slug":"typedsql%e2%94%80%e2%94%80c-%e3%81%ae%e5%9e%8b%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%82%92%e3%82%af%e3%82%a8%e3%83%aa%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3%e3%81%a8%e3%81%97%e3%81%a6%e3%80%8c%e6%82%aa","status":"publish","type":"post","link":"https:\/\/pokecon.jp\/job\/24998\/","title":{"rendered":"TypedSql\u2500\u2500C# \u306e\u578b\u30b7\u30b9\u30c6\u30e0\u3092\u30af\u30a8\u30ea\u30a8\u30f3\u30b8\u30f3\u3068\u3057\u3066\u300c\u60aa\u7528\u300d\u3057\u3066\u307f\u305f\u8a71 #SQL &#8211; Qiita"},"content":{"rendered":"\n<\/p>\n<div wp_automatic_readability=\"380.14871673129\">\n<p data-sourcepos=\"3:1-3:96\">TypedSql \u306f\u3001\u3042\u308b\u65e5\u3075\u3068\u6e67\u3044\u305f\u300c\u3061\u3087\u3063\u3068\u3057\u305f\u4e0d\u6e80\u300d\u304b\u3089\u59cb\u307e\u308a\u307e\u3057\u305f\u3002<\/p>\n<p data-sourcepos=\"5:1-5:110\">.NET \u3067\u30b3\u30fc\u30c9\u3092\u66f8\u3044\u3066\u3044\u308b\u3068\u3001\u300c\u30af\u30a8\u30ea\u3063\u307d\u3044\u51e6\u7406\u300d\u3092\u66f8\u304f\u5834\u9762\u304c\u3088\u304f\u3042\u308a\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"7:1-7:137\">\u4f8b\u3048\u3070\u3001\u3059\u3067\u306b\u30e1\u30e2\u30ea\u4e0a\u306b\u3042\u308b <code>List<t\/><\/code> \u3084\u914d\u5217\u3092\u30d5\u30a3\u30eb\u30bf\u3057\u3066\u3001\u4e00\u90e8\u306e\u5217\u3060\u3051\u53d6\u308a\u51fa\u3057\u305f\u3044\u3068\u304d\u3067\u3059\u3002<\/p>\n<p data-sourcepos=\"9:1-9:69\">\u305d\u306e\u3068\u304d\u3001\u3060\u3044\u305f\u3044\u6b21\u306e 3 \u3064\u306e\u9078\u629e\u80a2\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<ul data-sourcepos=\"11:1-14:0\">\n<li data-sourcepos=\"11:1-11:102\">\u7d20\u76f4\u306b <code>foreach<\/code> \u3067\u56de\u3059 \u2014 \u901f\u304f\u3066\u660e\u793a\u7684\u3060\u3051\u3069\u3001\u3061\u3087\u3063\u3068\u30b3\u30fc\u30c9\u304c\u3046\u308b\u3055\u3044<\/li>\n<li data-sourcepos=\"12:1-12:159\">LINQ\uff08Language Integrated Query\uff09\u3092\u4f7f\u3046 \u2014 \u66f8\u304d\u5fc3\u5730\u306f\u3044\u3044\u3051\u308c\u3069\u3001\u30a4\u30c6\u30ec\u30fc\u30bf\u30fc\u3084\u30c7\u30ea\u30b2\u30fc\u30c8\u306e\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u304c\u6c17\u306b\u306a\u308b<\/li>\n<li data-sourcepos=\"13:1-14:0\">\u3044\u3063\u305d\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u7a81\u3063\u8fbc\u3093\u3067\u3001\u672c\u7269\u306e SQL \u3092\u66f8\u304f \u2014 \u3055\u3059\u304c\u306b\u3084\u308a\u3059\u304e\u611f\u304c\u3042\u308b<\/li>\n<\/ul>\n<p data-sourcepos=\"15:1-15:144\">\u300c\u3082\u3046\u5c11\u3057\u3060\u3051\u201c\u3061\u3087\u3046\u3069\u3044\u3044\u201d\u9078\u629e\u80a2\u304c\u6b32\u3057\u3044\u306a\u300d\u3068\u601d\u3063\u305f\u3068\u3053\u308d\u304b\u3089\u3001TypedSql \u306e\u5b9f\u9a13\u304c\u59cb\u307e\u308a\u307e\u3057\u305f\u3002<\/p>\n<p data-sourcepos=\"17:1-17:54\">\u305d\u3053\u3067\u51fa\u3066\u304d\u305f\u306e\u304c\u3001\u3053\u3093\u306a\u767a\u60f3\u3067\u3059\u3002<\/p>\n<blockquote data-sourcepos=\"19:1-19:111\" wp_automatic_readability=\"6\">\n<p data-sourcepos=\"19:3-19:111\"><strong>C# \u306e\u578b\u30b7\u30b9\u30c6\u30e0\u305d\u306e\u3082\u306e\u3092\u3001\u30af\u30a8\u30ea\u30d7\u30e9\u30f3\u3068\u3057\u3066\u6271\u3063\u305f\u3089\u3069\u3046\u306a\u308b\u3093\u3060\u308d\u3046\uff1f<\/strong><\/p>\n<\/blockquote>\n<p data-sourcepos=\"21:1-21:18\">\u3075\u3064\u3046\u306a\u3089\u3001<\/p>\n<ul data-sourcepos=\"23:1-25:0\">\n<li data-sourcepos=\"23:1-23:65\">\u5b9f\u884c\u6642\u306b\u5f0f\u30c4\u30ea\u30fc\uff08Expression Tree\uff09\u3092\u7d44\u307f\u7acb\u3066\u3066<\/li>\n<li data-sourcepos=\"24:1-25:0\">\u305d\u308c\u3092\u30c7\u30fc\u30bf\u306b\u5bfe\u3057\u3066\u89e3\u91c8\u3057\u3066\u3044\u304f<\/li>\n<\/ul>\n<p data-sourcepos=\"26:1-26:45\">\u3068\u3044\u3046\u30b9\u30bf\u30a4\u30eb\u306b\u306a\u308a\u307e\u3059\u3088\u306d\u3002<\/p>\n<p data-sourcepos=\"28:1-28:51\">TypedSql \u306f\u3001\u305d\u3053\u3092\u3072\u3063\u304f\u308a\u8fd4\u3057\u307e\u3059\u3002<\/p>\n<ul data-sourcepos=\"30:1-33:0\">\n<li data-sourcepos=\"30:1-30:42\">SQL \u3063\u307d\u3044\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3057\u3066<\/li>\n<li data-sourcepos=\"31:1-31:77\">\u305d\u306e\u7d50\u679c\u3092\u300c\u30cd\u30b9\u30c8\u3057\u305f\u30b8\u30a7\u30cd\u30ea\u30c3\u30af\u578b\u300d\u3068\u3057\u3066\u8868\u73fe\u3057<\/li>\n<li data-sourcepos=\"32:1-33:0\">\u3042\u3068\u306f\u5168\u90e8\u3001\u9759\u7684\u30e1\u30bd\u30c3\u30c9\u3060\u3051\u3067\u51e6\u7406\u3092\u6d41\u3059<\/li>\n<\/ul>\n<p data-sourcepos=\"34:1-34:109\">\u3064\u307e\u308a\u3001<strong>\u30af\u30a8\u30ea\u306e\u5b9f\u884c\u8a08\u753b\u3092\u4e38\u3054\u3068\u578b\u306b\u62bc\u3057\u8fbc\u3081\u3066\u3057\u307e\u3046<\/strong>\u3001\u3068\u3044\u3046\u904a\u3073\u3067\u3059\u3002<\/p>\n<p data-sourcepos=\"36:1-36:127\"><a target=\"_blank\" href=\"https:\/\/qiita-user-contents.imgix.net\/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F638932%2F78cc7a35-d684-4ad3-8bc1-d86ca2b9611b.jpeg?ixlib=rb-4.0.0&amp;auto=format&amp;gif-q=60&amp;q=75&amp;s=09f29b3f0d227b4f5e756ea61bd625f5\" target=\"_blank\" rel=\"nofollow noopener\"><img decoding=\"async\" src=\"https:\/\/qiita-user-contents.imgix.net\/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F638932%2F78cc7a35-d684-4ad3-8bc1-d86ca2b9611b.jpeg?ixlib=rb-4.0.0&amp;auto=format&amp;gif-q=60&amp;q=75&amp;s=09f29b3f0d227b4f5e756ea61bd625f5\" alt=\"1000016101.jpg\" srcset=\"https:\/\/qiita-user-contents.imgix.net\/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F638932%2F78cc7a35-d684-4ad3-8bc1-d86ca2b9611b.jpeg?ixlib=rb-4.0.0&amp;auto=format&amp;gif-q=60&amp;q=75&amp;w=1400&amp;fit=max&amp;s=7d1c4ff2e8ec91f35b4c2d67c91f27ad 1x\" data-canonical-src=\"https:\/\/qiita-image-store.s3.ap-northeast-1.amazonaws.com\/0\/638932\/78cc7a35-d684-4ad3-8bc1-d86ca2b9611b.jpeg\" loading=\"lazy\"\/><\/a><\/p>\n<p data-sourcepos=\"40:1-40:72\">TypedSql \u306e\u30b3\u30a2\u306b\u3042\u308b\u8003\u3048\u65b9\u306f\u3001\u3068\u3066\u3082\u30b7\u30f3\u30d7\u30eb\u3067\u3059\u3002<\/p>\n<blockquote data-sourcepos=\"42:1-42:138\" wp_automatic_readability=\"6\">\n<p data-sourcepos=\"42:3-42:138\">\u30af\u30a8\u30ea\u306f <code>WhereSelect<trow stop=\"\">&gt;<\/trow><\/code> \u307f\u305f\u3044\u306a <strong>\u30cd\u30b9\u30c8\u3057\u305f\u30b8\u30a7\u30cd\u30ea\u30c3\u30af\u578b\u306e\u9023\u9396<\/strong> \u3067\u8868\u305b\u308b\u306e\u3067\u306f\uff1f<\/p>\n<\/blockquote>\n<p data-sourcepos=\"44:1-44:194\">LINQ \u306e\u3088\u3046\u306b\u300c\u30e1\u30bd\u30c3\u30c9\u30c1\u30a7\u30fc\u30f3\u3067\u30af\u30a8\u30ea\u3092\u66f8\u304f\u300d\u306e\u3067\u306f\u306a\u304f\u3001\u305d\u306e\u30c1\u30a7\u30fc\u30f3\u306e\u69cb\u9020\u305d\u306e\u3082\u306e\u3092\u300c\u578b\u5f15\u6570\u300d\u3067\u8868\u73fe\u3057\u3066\u3057\u307e\u3046\u3001\u3068\u3044\u3046\u3053\u3068\u3067\u3059\u3002<\/p>\n<h2 data-sourcepos=\"46:1-46:49\">\n<span id=\"11-\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u3092\u4e38\u3054\u3068\u578b\u306b\u3059\u308b\" class=\"fragment\"\/><a target=\"_blank\" href=\"#11-%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%92%E4%B8%B8%E3%81%94%E3%81%A8%E5%9E%8B%E3%81%AB%E3%81%99%E3%82%8B\"><i class=\"fa fa-link\"\/><\/a>1.1 \u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u3092\u4e38\u3054\u3068\u578b\u306b\u3059\u308b<\/h2>\n<p data-sourcepos=\"48:1-49:66\">TypedSql \u3067\u306f\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u3055\u308c\u305f\u30af\u30a8\u30ea\u306f\u3059\u3079\u3066\u300c\u9589\u3058\u305f\u30b8\u30a7\u30cd\u30ea\u30c3\u30af\u578b\u300d\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306e\u90e8\u54c1\u306f\u3001\u4f8b\u3048\u3070\u3053\u3093\u306a\u611f\u3058\u3067\u3059\u3002<\/p>\n<ul data-sourcepos=\"51:1-55:0\">\n<li data-sourcepos=\"51:1-51:50\"><code>Where<trow tpredicate=\"\" tnext=\"\" tresult=\"\" troot=\"\"\/><\/code><\/li>\n<li data-sourcepos=\"52:1-52:61\"><code>Select<trow tprojection=\"\" tnext=\"\" tmiddle=\"\" tresult=\"\" troot=\"\"\/><\/code><\/li>\n<li data-sourcepos=\"53:1-53:78\"><code>WhereSelect<trow tpredicate=\"\" tprojection=\"\" tnext=\"\" tmiddle=\"\" tresult=\"\" troot=\"\"\/><\/code><\/li>\n<li data-sourcepos=\"54:1-55:0\"><code>Stop<tresult troot=\"\"\/><\/code><\/li>\n<\/ul>\n<p data-sourcepos=\"56:1-56:84\">\u305d\u3057\u3066\u3001\u3053\u308c\u3089\u306f\u307f\u3093\u306a\u6b21\u306e\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"58:1-65:3\" wp_automatic_readability=\"9\">\n<div class=\"highlight\" wp_automatic_readability=\"13\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">interface<\/span> <span class=\"nc\">IQueryNode<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TResult<\/span><span class=\"p\">,<\/span> <span class=\"n\">TRoot<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">static<\/span> <span class=\"k\">abstract<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">Run<\/span><span class=\"p\">(<\/span><span class=\"n\">ReadOnlySpan<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">rows<\/span><span class=\"p\">,<\/span> <span class=\"n\">scoped<\/span> <span class=\"k\">ref<\/span> <span class=\"n\">QueryRuntime<\/span><span class=\"p\"><span class=\"n\">TResult<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">runtime<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"k\">static<\/span> <span class=\"k\">abstract<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">Process<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">TRow<\/span> <span class=\"n\">row<\/span><span class=\"p\">,<\/span> <span class=\"n\">scoped<\/span> <span class=\"k\">ref<\/span> <span class=\"n\">QueryRuntime<\/span><span class=\"p\"><span class=\"n\">TResult<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">runtime<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<ul data-sourcepos=\"67:1-69:0\">\n<li data-sourcepos=\"67:1-67:50\">\n<code>Run<\/code> \u304c\u5916\u5074\u306e\u30eb\u30fc\u30d7\uff08\u5168\u884c\u3092\u56de\u3059\uff09<\/li>\n<li data-sourcepos=\"68:1-69:0\">\n<code>Process<\/code> \u304c 1 \u884c\u3054\u3068\u306e\u51e6\u7406<\/li>\n<\/ul>\n<p data-sourcepos=\"70:1-70:30\">\u3068\u3044\u3046\u5f79\u5272\u5206\u62c5\u3067\u3059\u3002<\/p>\n<p data-sourcepos=\"72:1-72:60\">\u4f8b\u3048\u3070 <code>Where<\/code> \u30ce\u30fc\u30c9\u306f\u3053\u3093\u306a\u30a4\u30e1\u30fc\u30b8\u3067\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"74:1-96:3\" wp_automatic_readability=\"13.5\">\n<div class=\"highlight\" wp_automatic_readability=\"22\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">Where<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TPredicate<\/span><span class=\"p\">,<\/span> <span class=\"n\">TNext<\/span><span class=\"p\">,<\/span> <span class=\"n\">TResult<\/span><span class=\"p\">,<\/span> <span class=\"n\">TRoot<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">:<\/span> <span class=\"n\">IQueryNode<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TResult<\/span><span class=\"p\">,<\/span> <span class=\"n\">TRoot<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TPredicate<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IFilter<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TNext<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IQueryNode<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TResult<\/span><span class=\"p\">,<\/span> <span class=\"n\">TRoot<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">Run<\/span><span class=\"p\">(<\/span><span class=\"n\">ReadOnlySpan<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">rows<\/span><span class=\"p\">,<\/span> <span class=\"n\">scoped<\/span> <span class=\"k\">ref<\/span> <span class=\"n\">QueryRuntime<\/span><span class=\"p\"><span class=\"n\">TResult<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">runtime<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"kt\">var<\/span> <span class=\"n\">i<\/span> <span class=\"p\">=<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span> <span class=\"p\"> <span class=\"n\">rows<\/span><span class=\"p\">.<\/span><span class=\"n\">Length<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span><span class=\"p\">++)<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"nf\">Process<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">rows<\/span><span class=\"p\">[<\/span><span class=\"n\">i<\/span><span class=\"p\">],<\/span> <span class=\"k\">ref<\/span> <span class=\"n\">runtime<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">Process<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">TRow<\/span> <span class=\"n\">row<\/span><span class=\"p\">,<\/span> <span class=\"n\">scoped<\/span> <span class=\"k\">ref<\/span> <span class=\"n\">QueryRuntime<\/span><span class=\"p\"><span class=\"n\">TResult<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">runtime<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">TPredicate<\/span><span class=\"p\">.<\/span><span class=\"nf\">Evaluate<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">row<\/span><span class=\"p\">))<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"n\">TNext<\/span><span class=\"p\">.<\/span><span class=\"nf\">Process<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">row<\/span><span class=\"p\">,<\/span> <span class=\"k\">ref<\/span> <span class=\"n\">runtime<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"98:1-98:27\">\u3053\u3053\u3067\u5927\u4e8b\u306a\u306e\u306f\u3001<\/p>\n<ul data-sourcepos=\"100:1-103:0\">\n<li data-sourcepos=\"100:1-100:71\">\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306e\u300c\u5f62\u300d\u306f\u3059\u3079\u3066\u578b\u5f15\u6570\u306b\u9589\u3058\u3066\u3044\u308b<\/li>\n<li data-sourcepos=\"101:1-101:66\">\u5404\u30ce\u30fc\u30c9\u306f <code>struct<\/code> \u3067\u3001\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u3089\u306a\u3044<\/li>\n<li data-sourcepos=\"102:1-103:0\">\u3059\u3079\u3066 static \u30e1\u30bd\u30c3\u30c9\u547c\u3073\u51fa\u3057\u3067\u5b8c\u7d50\u3059\u308b<\/li>\n<\/ul>\n<p data-sourcepos=\"104:1-104:21\">\u3068\u3044\u3046\u70b9\u3067\u3059\u3002<\/p>\n<p data-sourcepos=\"106:1-106:250\">JIT\uff08Just-In-Time \u30b3\u30f3\u30d1\u30a4\u30eb\uff09\u304b\u3089\u898b\u308b\u3068\u3001\u300c\u4e00\u5ea6\u30b8\u30a7\u30cd\u30ea\u30c3\u30af\u5f15\u6570\u304c\u6c7a\u307e\u3063\u3066\u3057\u307e\u3048\u3070\u3001\u3042\u3068\u306f\u305f\u3060\u306e\u9759\u7684\u306a\u547c\u3073\u51fa\u3057\u30b0\u30e9\u30d5\u300d\u3067\u3059\u3002\u3064\u307e\u308a\u3001\u304b\u306a\u308a\u5f37\u6c17\u306b\u6700\u9069\u5316\u3067\u304d\u308b\u4f59\u5730\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<h2 data-sourcepos=\"108:1-108:58\">\n<span id=\"12-\u5217\u30ab\u30e9\u30e0\u3068\u6295\u5f71\u3092\u5024\u578b\u3067\u7d71\u4e00\u3059\u308b\" class=\"fragment\"\/><a target=\"_blank\" href=\"#12-%E5%88%97%E3%82%AB%E3%83%A9%E3%83%A0%E3%81%A8%E6%8A%95%E5%BD%B1%E3%82%92%E5%80%A4%E5%9E%8B%E3%81%A7%E7%B5%B1%E4%B8%80%E3%81%99%E3%82%8B\"><i class=\"fa fa-link\"\/><\/a>1.2 \u5217\uff08\u30ab\u30e9\u30e0\uff09\u3068\u6295\u5f71\u3092\u5024\u578b\u3067\u7d71\u4e00\u3059\u308b<\/h2>\n<p data-sourcepos=\"110:1-110:30\">\u30af\u30a8\u30ea\u3092\u52d5\u304b\u3059\u306b\u306f\u3001<\/p>\n<ul data-sourcepos=\"112:1-115:0\">\n<li data-sourcepos=\"112:1-112:29\">\u3069\u3093\u306a\u5217\u304c\u3042\u308b\u306e\u304b<\/li>\n<li data-sourcepos=\"113:1-113:35\">\u3069\u3093\u306a\u5024\u3092\u53d6\u308a\u51fa\u3059\u306e\u304b<\/li>\n<li data-sourcepos=\"114:1-115:0\">\u3069\u3046\u30d5\u30a3\u30eb\u30bf\u3059\u308b\u306e\u304b<\/li>\n<\/ul>\n<p data-sourcepos=\"116:1-117:84\">\u3068\u3044\u3063\u305f\u60c5\u5831\u304c\u5fc5\u8981\u3067\u3059\u3002<br \/>TypedSql \u306f\u3053\u3053\u3082\u5fb9\u5e95\u7684\u306b\u300c\u5024\u578b\uff0b\u9759\u7684\u30e1\u30bd\u30c3\u30c9\u300d\u3067\u63c3\u3048\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"119:1-119:197\">\u884c\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u304c\u5b9a\u7fa9\u3059\u308b\u4efb\u610f\u306e\u578b\uff08\u30af\u30e9\u30b9\u3067\u3082\u30ec\u30b3\u30fc\u30c9\u3067\u3082\uff09\u3067\u3059\u3002\u305d\u306e\u4e0a\u306b\u3001\u300c\u3053\u306e\u884c\u304b\u3089\u3069\u3046\u5024\u3092\u53d6\u308a\u51fa\u3059\u304b\u300d\u3092\u8868\u3059 <code>IColumn<\/code> \u3092\u4e57\u305b\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"121:1-128:3\" wp_automatic_readability=\"7\">\n<div class=\"highlight\" wp_automatic_readability=\"9\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">interface<\/span> <span class=\"nc\">IColumn<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TValue<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">static<\/span> <span class=\"k\">abstract<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Identifier<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"k\">static<\/span> <span class=\"k\">abstract<\/span> <span class=\"n\">TValue<\/span> <span class=\"nf\">Get<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">TRow<\/span> <span class=\"n\">row<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"130:1-130:71\">\u4f8b\u3048\u3070 <code>Person.Name<\/code> \u5217\u306a\u3089\u3001\u3053\u3093\u306a struct \u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"132:1-139:3\" wp_automatic_readability=\"7\">\n<div class=\"highlight\" wp_automatic_readability=\"9\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">PersonNameColumn<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IColumn<\/span><span class=\"p\"><span class=\"n\">Person<\/span><span class=\"p\">,<\/span> <span class=\"kt\">string<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Identifier<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"s\">\"Name\"<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">string<\/span> <span class=\"nf\">Get<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">Person<\/span> <span class=\"n\">row<\/span><span class=\"p\">)<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"n\">row<\/span><span class=\"p\">.<\/span><span class=\"n\">Name<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"141:1-142:89\">\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306f\u3044\u308a\u307e\u305b\u3093\u3002<br \/>\u300c\u5217\u540d\u300d\u3068\u300c\u5024\u306e\u53d6\u308a\u51fa\u3057\u65b9\u300d\u3092\u3001\u5168\u90e8 static \u3067\u6e08\u307e\u305b\u3066\u3044\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"144:1-144:61\">\u6295\u5f71\uff08SELECT \u53e5\u3067\u8fd4\u3059\u5024\uff09\u306f <code>IProjection<\/code> \u3067\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"146:1-151:3\" wp_automatic_readability=\"6.5\">\n<div class=\"highlight\" wp_automatic_readability=\"8\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">interface<\/span> <span class=\"nc\">IProjection<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TResult<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">static<\/span> <span class=\"k\">abstract<\/span> <span class=\"n\">TResult<\/span> <span class=\"nf\">Project<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">TRow<\/span> <span class=\"n\">row<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"153:1-153:68\">\u300c\u3042\u308b\u5217\u3060\u3051\u8fd4\u3059\u300d\u6295\u5f71\u306a\u3089\u3001\u3053\u3093\u306a struct \u3067\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"155:1-162:3\" wp_automatic_readability=\"8.5\">\n<div class=\"highlight\" wp_automatic_readability=\"12\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">ColumnProjection<\/span><span class=\"p\"><span class=\"n\">TColumn<\/span><span class=\"p\">,<\/span> <span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TValue<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">:<\/span> <span class=\"n\">IProjection<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TValue<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TColumn<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IColumn<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TValue<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"n\">TValue<\/span> <span class=\"nf\">Project<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">TRow<\/span> <span class=\"n\">row<\/span><span class=\"p\">)<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"n\">TColumn<\/span><span class=\"p\">.<\/span><span class=\"nf\">Get<\/span><span class=\"p\">(<\/span><span class=\"n\">row<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"164:1-164:144\">\u8907\u6570\u5217\u3092\u8fd4\u3057\u305f\u3044\u3068\u304d\u306f\u3001<code>ValueTuple<\/code>\uff08\u5024\u30bf\u30d7\u30eb\uff09\u3092\u69cb\u6210\u3059\u308b\u5c02\u7528\u306e projection \u3092\u3044\u304f\u3064\u304b\u7528\u610f\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"166:1-176:3\" wp_automatic_readability=\"9.5\">\n<div class=\"highlight\" wp_automatic_readability=\"14\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">ValueTupleProjection<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TColumn1<\/span><span class=\"p\">,<\/span> <span class=\"n\">TValue1<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">:<\/span> <span class=\"n\">IProjection<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">ValueTuple<\/span><span class=\"p\"><span class=\"n\">TValue1<\/span><span class=\"p\">&gt;&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TColumn1<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IColumn<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TValue1<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"n\">ValueTuple<\/span><span class=\"p\"><span class=\"n\">TValue1<\/span><span class=\"p\">&gt;<\/span> <span class=\"nf\">Project<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">TRow<\/span> <span class=\"n\">row<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">=&gt;<\/span> <span class=\"k\">new<\/span><span class=\"p\">(<\/span><span class=\"n\">TColumn1<\/span><span class=\"p\">.<\/span><span class=\"nf\">Get<\/span><span class=\"p\">(<\/span><span class=\"n\">row<\/span><span class=\"p\">));<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ \u2026 7 \u5217\u307e\u3067\u5c02\u7528\u578b\u3092\u7528\u610f\u3057\u3001\u305d\u306e\u5148\u306f Rest \u3067\u518d\u5e30<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"178:1-178:24\">\u3053\u3053\u3067\u3082\u3084\u306f\u308a\u3001<\/p>\n<ul data-sourcepos=\"180:1-182:0\">\n<li data-sourcepos=\"180:1-180:20\">\u3059\u3079\u3066 <code>struct<\/code>\n<\/li>\n<li data-sourcepos=\"181:1-182:0\">\u3059\u3079\u3066\u9759\u7684\u30e1\u30bd\u30c3\u30c9<\/li>\n<\/ul>\n<p data-sourcepos=\"183:1-183:33\">\u3068\u3044\u3046\u7d71\u4e00\u30eb\u30fc\u30eb\u3067\u3059\u3002<\/p>\n<h2 data-sourcepos=\"185:1-185:64\">\n<span id=\"13-\u30d5\u30a3\u30eb\u30bfwhere-\u53e5\u3082\u3059\u3079\u3066\u578b\u3067\u8868\u73fe\u3059\u308b\" class=\"fragment\"\/><a target=\"_blank\" href=\"#13-%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BFwhere-%E5%8F%A5%E3%82%82%E3%81%99%E3%81%B9%E3%81%A6%E5%9E%8B%E3%81%A7%E8%A1%A8%E7%8F%BE%E3%81%99%E3%82%8B\"><i class=\"fa fa-link\"\/><\/a>1.3 \u30d5\u30a3\u30eb\u30bf\uff08WHERE \u53e5\uff09\u3082\u3059\u3079\u3066\u578b\u3067\u8868\u73fe\u3059\u308b<\/h2>\n<p data-sourcepos=\"187:1-187:41\">\u30d5\u30a3\u30eb\u30bf\u306f <code>IFilter<trow\/><\/code> \u3067\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"189:1-194:3\" wp_automatic_readability=\"6\">\n<div class=\"highlight\" wp_automatic_readability=\"7\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">interface<\/span> <span class=\"nc\">IFilter<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">static<\/span> <span class=\"k\">abstract<\/span> <span class=\"kt\">bool<\/span> <span class=\"nf\">Evaluate<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">TRow<\/span> <span class=\"n\">row<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"196:1-196:86\">\u5217\u3068\u30ea\u30c6\u30e9\u30eb\u306e\u6bd4\u8f03\u306f\u3001\u4f8b\u3048\u3070\u6b21\u306e\u3088\u3046\u306b struct \u3067\u8868\u73fe\u3057\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"198:1-221:3\" wp_automatic_readability=\"10\">\n<div class=\"highlight\" wp_automatic_readability=\"15\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">EqualsFilter<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TColumn<\/span><span class=\"p\">,<\/span> <span class=\"n\">TLiteral<\/span><span class=\"p\">,<\/span> <span class=\"n\">TValue<\/span><span class=\"p\">&gt;<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IFilter<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TColumn<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IColumn<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TValue<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TLiteral<\/span> <span class=\"p\">:<\/span> <span class=\"n\">ILiteral<\/span><span class=\"p\"><span class=\"n\">TValue<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TValue<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IEquatable<\/span><span class=\"p\"><span class=\"n\">TValue<\/span><span class=\"p\">&gt;,<\/span> <span class=\"n\">IComparable<\/span><span class=\"p\"><span class=\"n\">TValue<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"p\">[<\/span><span class=\"nf\">MethodImpl<\/span><span class=\"p\">(<\/span><span class=\"n\">MethodImplOptions<\/span><span class=\"p\">.<\/span><span class=\"n\">AggressiveInlining<\/span><span class=\"p\">)]<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">bool<\/span> <span class=\"nf\">Evaluate<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">TRow<\/span> <span class=\"n\">row<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">TValue<\/span><span class=\"p\">).<\/span><span class=\"n\">IsValueType<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"k\">return<\/span> <span class=\"n\">TColumn<\/span><span class=\"p\">.<\/span><span class=\"nf\">Get<\/span><span class=\"p\">(<\/span><span class=\"n\">row<\/span><span class=\"p\">).<\/span><span class=\"nf\">Equals<\/span><span class=\"p\">(<\/span><span class=\"n\">TLiteral<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n        <span class=\"k\">else<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"kt\">var<\/span> <span class=\"n\">left<\/span> <span class=\"p\">=<\/span> <span class=\"n\">TColumn<\/span><span class=\"p\">.<\/span><span class=\"nf\">Get<\/span><span class=\"p\">(<\/span><span class=\"n\">row<\/span><span class=\"p\">);<\/span>\n            <span class=\"kt\">var<\/span> <span class=\"n\">right<\/span> <span class=\"p\">=<\/span> <span class=\"n\">TLiteral<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span><span class=\"p\">;<\/span>\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">left<\/span> <span class=\"k\">is<\/span> <span class=\"k\">null<\/span> <span class=\"p\">&amp;&amp;<\/span> <span class=\"n\">right<\/span> <span class=\"k\">is<\/span> <span class=\"k\">null<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span> <span class=\"k\">true<\/span><span class=\"p\">;<\/span>\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">left<\/span> <span class=\"k\">is<\/span> <span class=\"k\">null<\/span> <span class=\"p\">||<\/span> <span class=\"n\">right<\/span> <span class=\"k\">is<\/span> <span class=\"k\">null<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span> <span class=\"k\">false<\/span><span class=\"p\">;<\/span>\n            <span class=\"k\">return<\/span> <span class=\"n\">left<\/span><span class=\"p\">.<\/span><span class=\"nf\">Equals<\/span><span class=\"p\">(<\/span><span class=\"n\">right<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"223:1-223:307\">\u3053\u3053\u3067\u306f <code>TValue<\/code> \u304c\u5024\u578b\u304b\u53c2\u7167\u578b\u304b\u3092\u5206\u3051\u3066 <code>null<\/code> \u3092\u6271\u3063\u3066\u3044\u307e\u3059\u3002.NET \u306e JIT \u306f\u3053\u306e\u30d1\u30bf\u30fc\u30f3\u3092\u8a8d\u8b58\u3057\u3066\u3001\u5024\u578b\u7528\u3068\u53c2\u7167\u578b\u7528\u306b\u5225\u3005\u306e\u30b3\u30fc\u30c9\u30d1\u30b9\u3092\u7279\u5316\u3057\u3066\u304f\u308c\u308b\u306e\u3067\u3001\u5b9f\u969b\u306b\u306f\u3053\u306e\u5206\u5c90\u306b\u3088\u308b\u4f59\u8a08\u306a\u30b3\u30b9\u30c8\u306f\u307b\u307c\u767a\u751f\u3057\u307e\u305b\u3093\u3002<\/p>\n<p data-sourcepos=\"225:1-225:56\"><code>&gt;<\/code>, <code>, <code>!=<\/code> \u306a\u3069\u3082\u540c\u3058\u30ce\u30ea\u3067 struct \u3067\u3059\u3002<\/code><\/p>\n<p data-sourcepos=\"227:1-227:81\">AND \/ OR \/ NOT \u306f\u3001\u578b\u30ec\u30d9\u30eb\u306e\u8ad6\u7406\u6f14\u7b97\u5b50\u3068\u3057\u3066\u7a4d\u307f\u4e0a\u3052\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"229:1-252:3\" wp_automatic_readability=\"10\">\n<div class=\"highlight\" wp_automatic_readability=\"15\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">AndFilter<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TLeft<\/span><span class=\"p\">,<\/span> <span class=\"n\">TRight<\/span><span class=\"p\">&gt;<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IFilter<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TLeft<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IFilter<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TRight<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IFilter<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">bool<\/span> <span class=\"nf\">Evaluate<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">TRow<\/span> <span class=\"n\">row<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">=&gt;<\/span> <span class=\"n\">TLeft<\/span><span class=\"p\">.<\/span><span class=\"nf\">Evaluate<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">row<\/span><span class=\"p\">)<\/span> <span class=\"p\">&amp;&amp;<\/span> <span class=\"n\">TRight<\/span><span class=\"p\">.<\/span><span class=\"nf\">Evaluate<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">row<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">OrFilter<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TLeft<\/span><span class=\"p\">,<\/span> <span class=\"n\">TRight<\/span><span class=\"p\">&gt;<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IFilter<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TLeft<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IFilter<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TRight<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IFilter<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">bool<\/span> <span class=\"nf\">Evaluate<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">TRow<\/span> <span class=\"n\">row<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">=&gt;<\/span> <span class=\"n\">TLeft<\/span><span class=\"p\">.<\/span><span class=\"nf\">Evaluate<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">row<\/span><span class=\"p\">)<\/span> <span class=\"p\">||<\/span> <span class=\"n\">TRight<\/span><span class=\"p\">.<\/span><span class=\"nf\">Evaluate<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">row<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">NotFilter<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TPredicate<\/span><span class=\"p\">&gt;<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IFilter<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TPredicate<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IFilter<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">bool<\/span> <span class=\"nf\">Evaluate<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">TRow<\/span> <span class=\"n\">row<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">=&gt;<\/span> <span class=\"p\">!<\/span><span class=\"n\">TPredicate<\/span><span class=\"p\">.<\/span><span class=\"nf\">Evaluate<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">row<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"254:1-254:142\">\u7d50\u679c\u3068\u3057\u3066\u3001<code>WHERE<\/code> \u53e5\u5168\u4f53\u304c <strong>\u30d5\u30a3\u30eb\u30bf\u578b\u306e\u6728\u69cb\u9020<\/strong>\u306b\u306a\u308a\u307e\u3059\u3002\u5f0f\u30c4\u30ea\u30fc\u3067\u306f\u306a\u304f\u3001\u300c\u578b\u30c4\u30ea\u30fc\u300d\u3067\u3059\u3002<\/p>\n<h2 data-sourcepos=\"256:1-256:56\">\n<span id=\"14-\u6587\u5b57\u5217\u3060\u3051\u306f\u7279\u5225\u6271\u3044valuestring\" class=\"fragment\"\/><a target=\"_blank\" href=\"#14-%E6%96%87%E5%AD%97%E5%88%97%E3%81%A0%E3%81%91%E3%81%AF%E7%89%B9%E5%88%A5%E6%89%B1%E3%81%84valuestring\"><i class=\"fa fa-link\"\/><\/a>1.4 \u6587\u5b57\u5217\u3060\u3051\u306f\u7279\u5225\u6271\u3044\u2500\u2500<code>ValueString<\/code><br \/>\n<\/h2>\n<p data-sourcepos=\"258:1-259:90\">.NET \u3067\u306f <code>string<\/code> \u306f\u53c2\u7167\u578b\u3067\u3059\u3002<br \/>\u3053\u3053\u304c\u3001\u30b8\u30a7\u30cd\u30ea\u30c3\u30af\u306e\u4e16\u754c\u3067\u306f\u5c11\u3057\u5384\u4ecb\u306a\u30dd\u30a4\u30f3\u30c8\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<ul data-sourcepos=\"261:1-263:0\">\n<li data-sourcepos=\"261:1-261:62\">\u53c2\u7167\u578b\u306f\u300c\u30b8\u30a7\u30cd\u30ea\u30c3\u30af\u306e\u5171\u6709\u300d\u304c\u884c\u308f\u308c\u308b<\/li>\n<li data-sourcepos=\"262:1-263:0\">\u305d\u306e\u7d50\u679c\u3001\u5185\u90e8\u3067\u8f9e\u66f8\u3092\u5f15\u304f\u3088\u3046\u306a\u5f62\u306e\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u304c\u5c11\u3057\u3060\u3051\u4e57\u308b<\/li>\n<\/ul>\n<p data-sourcepos=\"264:1-264:157\">\u300c\u30db\u30c3\u30c8\u30d1\u30b9\u306f\u3067\u304d\u308b\u3060\u3051\u5024\u578b\u3060\u3051\u3067\u8d70\u3089\u305b\u305f\u3044\u300d\u3068\u3044\u3046\u6b32\u5f35\u308a\u306a\u9858\u671b\u304b\u3089\u3001TypedSql \u306f <code>string<\/code> \u3092\u4e00\u5ea6\u30e9\u30c3\u30d7\u3057\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"266:1-283:3\" wp_automatic_readability=\"10\">\n<div class=\"highlight\" wp_automatic_readability=\"15\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">ValueString<\/span><span class=\"p\">(<\/span><span class=\"kt\">string<\/span><span class=\"p\">?<\/span> <span class=\"k\">value<\/span><span class=\"p\">)<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IEquatable<\/span><span class=\"p\"><span class=\"n\">ValueString<\/span><span class=\"p\">&gt;,<\/span> <span class=\"n\">IComparable<\/span><span class=\"p\"><span class=\"n\">ValueString<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">readonly<\/span> <span class=\"kt\">string<\/span><span class=\"p\">?<\/span> <span class=\"n\">Value<\/span> <span class=\"p\">=<\/span> <span class=\"k\">value<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"kt\">int<\/span> <span class=\"nf\">CompareTo<\/span><span class=\"p\">(<\/span><span class=\"n\">ValueString<\/span> <span class=\"n\">other<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">=&gt;<\/span> <span class=\"kt\">string<\/span><span class=\"p\">.<\/span><span class=\"nf\">Compare<\/span><span class=\"p\">(<\/span><span class=\"n\">Value<\/span><span class=\"p\">,<\/span> <span class=\"n\">other<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span><span class=\"p\">,<\/span> <span class=\"n\">StringComparison<\/span><span class=\"p\">.<\/span><span class=\"n\">Ordinal<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"kt\">bool<\/span> <span class=\"nf\">Equals<\/span><span class=\"p\">(<\/span><span class=\"n\">ValueString<\/span> <span class=\"n\">other<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">=&gt;<\/span> <span class=\"kt\">string<\/span><span class=\"p\">.<\/span><span class=\"nf\">Equals<\/span><span class=\"p\">(<\/span><span class=\"n\">Value<\/span><span class=\"p\">,<\/span> <span class=\"n\">other<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span><span class=\"p\">,<\/span> <span class=\"n\">StringComparison<\/span><span class=\"p\">.<\/span><span class=\"n\">Ordinal<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">override<\/span> <span class=\"kt\">string<\/span><span class=\"p\">?<\/span> <span class=\"nf\">ToString<\/span><span class=\"p\">()<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"n\">Value<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"k\">implicit<\/span> <span class=\"k\">operator<\/span> <span class=\"nf\">ValueString<\/span><span class=\"p\">(<\/span><span class=\"kt\">string<\/span> <span class=\"k\">value<\/span><span class=\"p\">)<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"k\">new<\/span><span class=\"p\">(<\/span><span class=\"k\">value<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"k\">implicit<\/span> <span class=\"k\">operator<\/span> <span class=\"kt\">string<\/span><span class=\"p\">?(<\/span><span class=\"n\">ValueString<\/span> <span class=\"k\">value<\/span><span class=\"p\">)<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"k\">value<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"285:1-285:81\"><code>string<\/code> \u5217\u306f <code>ValueStringColumn<\/code> \u3067\u81ea\u52d5\u7684\u306b\u3053\u308c\u306b\u5909\u63db\u3055\u308c\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"287:1-297:3\" wp_automatic_readability=\"8.5\">\n<div class=\"highlight\" wp_automatic_readability=\"12\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">ValueStringColumn<\/span><span class=\"p\"><span class=\"n\">TColumn<\/span><span class=\"p\">,<\/span> <span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">:<\/span> <span class=\"n\">IColumn<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">ValueString<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TColumn<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IColumn<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"kt\">string<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Identifier<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"n\">TColumn<\/span><span class=\"p\">.<\/span><span class=\"n\">Identifier<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"n\">ValueString<\/span> <span class=\"nf\">Get<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">TRow<\/span> <span class=\"n\">row<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">=&gt;<\/span> <span class=\"k\">new<\/span><span class=\"p\">(<\/span><span class=\"n\">TColumn<\/span><span class=\"p\">.<\/span><span class=\"nf\">Get<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">row<\/span><span class=\"p\">));<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"299:1-299:24\">\u3053\u3046\u3059\u308b\u3053\u3068\u3067\u3001<\/p>\n<ul data-sourcepos=\"301:1-304:0\">\n<li data-sourcepos=\"301:1-301:56\">\u30db\u30c3\u30c8\u30d1\u30b9\u306f\u53ef\u80fd\u306a\u9650\u308a\u5024\u578b\u3060\u3051\u3067\u5b8c\u7d50<\/li>\n<li data-sourcepos=\"302:1-302:44\">\u6587\u5b57\u5217\u6bd4\u8f03\u306f\u5e38\u306b ordinal \u306b\u7d71\u4e00<\/li>\n<li data-sourcepos=\"303:1-304:0\">\u547c\u3073\u51fa\u3057\u5074\u306e API \u306f <code>string<\/code> \u306e\u307e\u307e\uff08\u6697\u9ed9\u5909\u63db\u3067\u5438\u53ce\uff09<\/li>\n<\/ul>\n<p data-sourcepos=\"305:1-305:63\">\u3068\u3044\u3046\u3001\u308f\u308a\u3068\u304a\u3044\u3057\u3044\u30d0\u30e9\u30f3\u30b9\u304c\u53d6\u308c\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"310:1-311:110\">TypedSql \u306f\u3001\u30d5\u30eb\u6a5f\u80fd\u306e SQL \u3092\u76ee\u6307\u3057\u3066\u306f\u3044\u307e\u305b\u3093\u3002<br \/>\u5bfe\u8c61\u306f\u3042\u304f\u307e\u3067\u300c1 \u30c6\u30fc\u30d6\u30eb\u3001\u30e1\u30e2\u30ea\u4e0a\u306e\u914d\u5217\u306b\u5bfe\u3059\u308b\u30b7\u30f3\u30d7\u30eb\u306a\u30af\u30a8\u30ea\u300d\u3067\u3059\u3002<\/p>\n<p data-sourcepos=\"313:1-313:66\">\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u69cb\u6587\u306f\u3001\u3056\u3063\u304f\u308a\u3053\u3093\u306a\u611f\u3058\u3067\u3059\u3002<\/p>\n<ul data-sourcepos=\"315:1-330:0\">\n<li data-sourcepos=\"315:1-315:19\"><code>SELECT * FROM $<\/code><\/li>\n<li data-sourcepos=\"316:1-316:21\"><code>SELECT col FROM $<\/code><\/li>\n<li data-sourcepos=\"317:1-317:33\"><code>SELECT col1, col2, ... FROM $<\/code><\/li>\n<li data-sourcepos=\"318:1-321:10\">\n<code>WHERE<\/code> \u53e5<\/p>\n<ul data-sourcepos=\"319:3-321:10\">\n<li data-sourcepos=\"319:3-319:52\">\u6bd4\u8f03\u6f14\u7b97\u5b50: <code>=<\/code>, <code>!=<\/code>, <code>&gt;<\/code>, <code>, <code>&gt;=<\/code>, <code><br \/>\n<\/code><\/code><\/li>\n<li data-sourcepos=\"320:3-320:39\">\u8ad6\u7406\u6f14\u7b97\u5b50: <code>AND<\/code>, <code>OR<\/code>, <code>NOT<\/code>\n<\/li>\n<li data-sourcepos=\"321:3-321:10\">\u62ec\u5f27<\/li>\n<\/ul>\n<\/li>\n<li data-sourcepos=\"322:1-327:10\">\u30ea\u30c6\u30e9\u30eb\n<ul data-sourcepos=\"323:3-327:10\">\n<li data-sourcepos=\"323:3-323:17\">\u6574\u6570 (<code>42<\/code>)<\/li>\n<li data-sourcepos=\"324:3-324:33\">\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570 (<code>123.45<\/code>)<\/li>\n<li data-sourcepos=\"325:3-325:31\">\u771f\u507d\u5024 (<code>true<\/code>, <code>false<\/code>)<\/li>\n<li data-sourcepos=\"326:3-326:77\">\u30b7\u30f3\u30b0\u30eb\u30af\u30a9\u30fc\u30c8\u6587\u5b57\u5217 (<code>'Seattle'<\/code>\u3001<code>''<\/code> \u3067\u30a8\u30b9\u30b1\u30fc\u30d7)<\/li>\n<li data-sourcepos=\"327:3-327:10\"><code>null<\/code><\/li>\n<\/ul>\n<\/li>\n<li data-sourcepos=\"328:1-328:47\">\u5217\u540d\u306f\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044<\/li>\n<li data-sourcepos=\"329:1-330:0\">\n<code>$<\/code> \u306f\u300c\u4eca\u306e\u30bd\u30fc\u30b9\uff08\u884c\u306e\u96c6\u5408\uff09\u300d\u3092\u8868\u3059\u30d7\u30ec\u30fc\u30b9\u30db\u30eb\u30c0<\/li>\n<\/ul>\n<p data-sourcepos=\"331:1-331:36\">\u30d1\u30fc\u30b5\u306f\u6b21\u306e 2 \u6bb5\u968e\u3067\u3059\u3002<\/p>\n<ol data-sourcepos=\"333:1-348:0\">\n<li data-sourcepos=\"333:1-333:62\">\u5165\u529b SQL \u3092\u30c8\u30fc\u30af\u30ca\u30a4\u30ba\uff08\u5358\u8a9e\u306b\u5207\u308a\u51fa\u3059\uff09<\/li>\n<li data-sourcepos=\"334:1-348:0\">\u5c0f\u3055\u306a\u62bd\u8c61\u69cb\u6587\u6728\uff08AST\uff09\u3092\u7d44\u307f\u7acb\u3066\u308b\n<ul data-sourcepos=\"335:4-348:0\">\n<li data-sourcepos=\"335:4-335:52\">\n<code>ParsedQuery<\/code> \u2014 SELECT \u3068 optional \u306a WHERE<\/li>\n<li data-sourcepos=\"336:4-336:60\">\n<code>Selection<\/code> \u2014 <code>SelectAll<\/code> \u307e\u305f\u306f\u5217\u540d\u306e\u30ea\u30b9\u30c8<\/li>\n<li data-sourcepos=\"337:4-341:22\">\n<code>WhereExpression<\/code> \u2014 \u6b21\u306e\u3044\u305a\u308c\u304b<\/p>\n<ul data-sourcepos=\"338:6-341:22\">\n<li data-sourcepos=\"338:6-338:29\"><code>ComparisonExpression<\/code><\/li>\n<li data-sourcepos=\"339:6-339:22\"><code>AndExpression<\/code><\/li>\n<li data-sourcepos=\"340:6-340:21\"><code>OrExpression<\/code><\/li>\n<li data-sourcepos=\"341:6-341:22\"><code>NotExpression<\/code><\/li>\n<\/ul>\n<\/li>\n<li data-sourcepos=\"342:4-348:0\">\n<code>LiteralValue<\/code> \u2014 \u7a2e\u5225\u3068\u5b9f\u969b\u306e\u5024<\/p>\n<ul data-sourcepos=\"343:6-348:0\">\n<li data-sourcepos=\"343:6-343:41\">\n<code>LiteralKind.Integer<\/code> + <code>IntValue<\/code>\n<\/li>\n<li data-sourcepos=\"344:6-344:41\">\n<code>LiteralKind.Float<\/code> + <code>FloatValue<\/code>\n<\/li>\n<li data-sourcepos=\"345:6-345:42\">\n<code>LiteralKind.Boolean<\/code> + <code>BoolValue<\/code>\n<\/li>\n<li data-sourcepos=\"346:6-346:43\">\n<code>LiteralKind.String<\/code> + <code>StringValue<\/code>\n<\/li>\n<li data-sourcepos=\"347:6-348:0\"><code>LiteralKind.Null<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p data-sourcepos=\"349:1-350:90\">\u3053\u306e\u6bb5\u968e\u3067\u306f\u3001\u307e\u3060 C# \u306e\u578b\u306f\u4e00\u5207\u51fa\u3066\u304d\u307e\u305b\u3093\u3002<br \/>\u300c\u69cb\u6587\u3068\u3057\u3066\u3069\u3046\u3044\u3046\u69cb\u9020\u3092\u3057\u3066\u3044\u308b\u304b\u300d\u3060\u3051\u3092\u8868\u73fe\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"352:1-352:207\">\u300c\u305d\u306e\u5217\u306f\u672c\u5f53\u306b int \u306a\u306e\u304b\uff1f\u300d\u300c\u305d\u306e\u30ea\u30c6\u30e9\u30eb\u306f float \u306b\u5909\u63db\u3067\u304d\u308b\u306e\u304b\uff1f\u300d\u3068\u3044\u3063\u305f\u578b\u306e\u6574\u5408\u6027\u30c1\u30a7\u30c3\u30af\u306f\u3001\u3053\u306e\u3042\u3068\u30b3\u30f3\u30d1\u30a4\u30eb\u30d5\u30a7\u30fc\u30ba\u3067\u884c\u3044\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"357:1-357:99\">TypedSql \u3067\u3082\u3063\u3068\u3082\u201c\u5909\u614b\u7684\uff08\u3044\u3044\u610f\u5473\u3067\uff09\u201d\u306a\u90e8\u5206\u306f\u3001\u305f\u3076\u3093\u3053\u3053\u3067\u3059\u3002<\/p>\n<blockquote data-sourcepos=\"359:1-359:128\" wp_automatic_readability=\"6\">\n<p data-sourcepos=\"359:3-359:128\"><strong>\u6574\u6570\u30fb\u6d6e\u52d5\u5c0f\u6570\u30fb\u6587\u5b57\u30fb\u6587\u5b57\u5217\u30fbbool \u3068\u3044\u3063\u305f\u30ea\u30c6\u30e9\u30eb\u5024\u3092\u3001\u3059\u3079\u3066\u300c\u578b\u300d\u3068\u3057\u3066\u8868\u73fe\u3059\u308b<\/strong><\/p>\n<\/blockquote>\n<p data-sourcepos=\"361:1-361:66\">\u3059\u3079\u3066\u306e\u30ea\u30c6\u30e9\u30eb\u578b\u306f <code>ILiteral<t\/><\/code> \u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"363:1-368:3\" wp_automatic_readability=\"6\">\n<div class=\"highlight\" wp_automatic_readability=\"7\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">interface<\/span> <span class=\"nc\">ILiteral<\/span><span class=\"p\"><span class=\"n\">T<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">static<\/span> <span class=\"k\">abstract<\/span> <span class=\"n\">T<\/span> <span class=\"n\">Value<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<ul data-sourcepos=\"370:1-375:0\">\n<li data-sourcepos=\"370:1-370:19\">\u6574\u6570\uff08<code>int<\/code>\uff09<\/li>\n<li data-sourcepos=\"371:1-371:27\">\u6d6e\u52d5\u5c0f\u6570\uff08<code>float<\/code>\uff09<\/li>\n<li data-sourcepos=\"372:1-372:20\">\u6587\u5b57\uff08<code>char<\/code>\uff09<\/li>\n<li data-sourcepos=\"373:1-373:23\">\u771f\u507d\u5024\uff08<code>bool<\/code>\uff09<\/li>\n<li data-sourcepos=\"374:1-375:0\">\u6587\u5b57\u5217\uff08<code>ValueString<\/code> \u7d4c\u7531\uff09<\/li>\n<\/ul>\n<p data-sourcepos=\"376:1-376:69\">\u306a\u3069\u304c\u3001\u307f\u3093\u306a\u3053\u306e\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306b\u5f93\u3044\u307e\u3059\u3002<\/p>\n<h2 data-sourcepos=\"378:1-378:55\">\n<span id=\"31-16-\u9032\u6570\u306e\u6841\u3067\u5206\u89e3\u3059\u308b\u6570\u5024\u30ea\u30c6\u30e9\u30eb\" class=\"fragment\"\/><a target=\"_blank\" href=\"#31-16-%E9%80%B2%E6%95%B0%E3%81%AE%E6%A1%81%E3%81%A7%E5%88%86%E8%A7%A3%E3%81%99%E3%82%8B%E6%95%B0%E5%80%A4%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB\"><i class=\"fa fa-link\"\/><\/a>3.1 16 \u9032\u6570\u306e\u6841\u3067\u5206\u89e3\u3059\u308b\u6570\u5024\u30ea\u30c6\u30e9\u30eb<\/h2>\n<p data-sourcepos=\"380:1-380:90\">\u6570\u5024\u30ea\u30c6\u30e9\u30eb\u306f\u300c16 \u9032\u6570\u306e\u6841\u300d\u306b\u5206\u89e3\u3057\u305f\u578b\u3068\u3057\u3066\u8868\u73fe\u3055\u308c\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"382:1-382:80\">\u307e\u305a 1 \u6841\u3076\u3093\u306e <code>IHex<\/code> \u3068\u3001<code>Hex0<\/code>\u301c<code>HexF<\/code> \u306e struct \u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"384:1-390:3\" wp_automatic_readability=\"7\">\n<div class=\"highlight\" wp_automatic_readability=\"9\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">interface<\/span> <span class=\"nc\">IHex<\/span> <span class=\"p\">{<\/span> <span class=\"k\">static<\/span> <span class=\"k\">abstract<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">Value<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span> <span class=\"p\">}<\/span>\n\n<span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">Hex0<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IHex<\/span> <span class=\"p\">{<\/span> <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">Value<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n<span class=\"c1\">\/\/ ...<\/span>\n<span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">HexF<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IHex<\/span> <span class=\"p\">{<\/span> <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">Value<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"m\">15<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"392:1-392:80\">\u6574\u6570\u30ea\u30c6\u30e9\u30eb\u306f\u3001\u3053\u308c\u3092 8 \u500b\u4e26\u3079\u305f <code>Int<h7 ...=\"\" h0=\"\"\/><\/code> \u578b\u3067\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"394:1-410:3\" wp_automatic_readability=\"10.5\">\n<div class=\"highlight\" wp_automatic_readability=\"16\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">Int<\/span><span class=\"p\"><span class=\"n\">H7<\/span><span class=\"p\">,<\/span> <span class=\"n\">H6<\/span><span class=\"p\">,<\/span> <span class=\"n\">H5<\/span><span class=\"p\">,<\/span> <span class=\"n\">H4<\/span><span class=\"p\">,<\/span> <span class=\"n\">H3<\/span><span class=\"p\">,<\/span> <span class=\"n\">H2<\/span><span class=\"p\">,<\/span> <span class=\"n\">H1<\/span><span class=\"p\">,<\/span> <span class=\"n\">H0<\/span><span class=\"p\">&gt;<\/span> <span class=\"p\">:<\/span> <span class=\"n\">ILiteral<\/span><span class=\"p\"><span class=\"kt\">int<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">H7<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IHex<\/span>\n    <span class=\"c1\">\/\/ ...<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">H0<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IHex<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">Value<\/span>\n        <span class=\"p\">=&gt;<\/span> <span class=\"p\">(<\/span><span class=\"n\">H7<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\"> <span class=\"m\">28<\/span><span class=\"p\">)<\/span>\n         <span class=\"p\">|<\/span> <span class=\"p\">(<\/span><span class=\"n\">H6<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\"> <span class=\"m\">24<\/span><span class=\"p\">)<\/span>\n         <span class=\"p\">|<\/span> <span class=\"p\">(<\/span><span class=\"n\">H5<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\"> <span class=\"m\">20<\/span><span class=\"p\">)<\/span>\n         <span class=\"p\">|<\/span> <span class=\"p\">(<\/span><span class=\"n\">H4<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\"> <span class=\"m\">16<\/span><span class=\"p\">)<\/span>\n         <span class=\"p\">|<\/span> <span class=\"p\">(<\/span><span class=\"n\">H3<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\"> <span class=\"m\">12<\/span><span class=\"p\">)<\/span>\n         <span class=\"p\">|<\/span> <span class=\"p\">(<\/span><span class=\"n\">H2<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\">  <span class=\"m\">8<\/span><span class=\"p\">)<\/span>\n         <span class=\"p\">|<\/span> <span class=\"p\">(<\/span><span class=\"n\">H1<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\">  <span class=\"m\">4<\/span><span class=\"p\">)<\/span>\n         <span class=\"p\">|<\/span>  <span class=\"n\">H0<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"412:1-412:132\">\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\uff08<code>float<\/code>\uff09\u3082 8 \u6841\u3076\u3093\u306e\u30d3\u30c3\u30c8\u30d1\u30bf\u30fc\u30f3\u3092\u6301\u3061\u3001<code>Unsafe.BitCast<\/code> \u3067 <code>float<\/code> \u306b\u5909\u63db\u3057\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"414:1-430:3\" wp_automatic_readability=\"11\">\n<div class=\"highlight\" wp_automatic_readability=\"17\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">Float<\/span><span class=\"p\"><span class=\"n\">H7<\/span><span class=\"p\">,<\/span> <span class=\"n\">H6<\/span><span class=\"p\">,<\/span> <span class=\"n\">H5<\/span><span class=\"p\">,<\/span> <span class=\"n\">H4<\/span><span class=\"p\">,<\/span> <span class=\"n\">H3<\/span><span class=\"p\">,<\/span> <span class=\"n\">H2<\/span><span class=\"p\">,<\/span> <span class=\"n\">H1<\/span><span class=\"p\">,<\/span> <span class=\"n\">H0<\/span><span class=\"p\">&gt;<\/span> <span class=\"p\">:<\/span> <span class=\"n\">ILiteral<\/span><span class=\"p\"><span class=\"kt\">float<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">H7<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IHex<\/span>\n    <span class=\"c1\">\/\/ ...<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">float<\/span> <span class=\"n\">Value<\/span>\n        <span class=\"p\">=&gt;<\/span> <span class=\"n\">Unsafe<\/span><span class=\"p\">.<\/span><span class=\"n\">BitCast<\/span><span class=\"p\"><span class=\"kt\">int<\/span><span class=\"p\">,<\/span> <span class=\"kt\">float<\/span><span class=\"p\">&gt;(<\/span>\n               <span class=\"p\">(<\/span><span class=\"n\">H7<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\"> <span class=\"m\">28<\/span><span class=\"p\">)<\/span>\n             <span class=\"p\">|<\/span> <span class=\"p\">(<\/span><span class=\"n\">H6<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\"> <span class=\"m\">24<\/span><span class=\"p\">)<\/span>\n             <span class=\"p\">|<\/span> <span class=\"p\">(<\/span><span class=\"n\">H5<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\"> <span class=\"m\">20<\/span><span class=\"p\">)<\/span>\n             <span class=\"p\">|<\/span> <span class=\"p\">(<\/span><span class=\"n\">H4<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\"> <span class=\"m\">16<\/span><span class=\"p\">)<\/span>\n             <span class=\"p\">|<\/span> <span class=\"p\">(<\/span><span class=\"n\">H3<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\"> <span class=\"m\">12<\/span><span class=\"p\">)<\/span>\n             <span class=\"p\">|<\/span> <span class=\"p\">(<\/span><span class=\"n\">H2<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\">  <span class=\"m\">8<\/span><span class=\"p\">)<\/span>\n             <span class=\"p\">|<\/span> <span class=\"p\">(<\/span><span class=\"n\">H1<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\">  <span class=\"m\">4<\/span><span class=\"p\">)<\/span>\n             <span class=\"p\">|<\/span>  <span class=\"n\">H0<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"432:1-432:55\">\u6587\u5b57\uff08<code>char<\/code>\uff09\u306f 4 \u6841\u3076\u3093\u306e 16 \u9032\u6570\u3067\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"434:1-445:3\" wp_automatic_readability=\"8\">\n<div class=\"highlight\" wp_automatic_readability=\"11\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">Char<\/span><span class=\"p\"><span class=\"n\">H3<\/span><span class=\"p\">,<\/span> <span class=\"n\">H2<\/span><span class=\"p\">,<\/span> <span class=\"n\">H1<\/span><span class=\"p\">,<\/span> <span class=\"n\">H0<\/span><span class=\"p\">&gt;<\/span> <span class=\"p\">:<\/span> <span class=\"n\">ILiteral<\/span><span class=\"p\"><span class=\"kt\">char<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">H3<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IHex<\/span>\n    <span class=\"c1\">\/\/ ...<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">char<\/span> <span class=\"n\">Value<\/span>\n        <span class=\"p\">=&gt;<\/span> <span class=\"p\">(<\/span><span class=\"kt\">char<\/span><span class=\"p\">)((<\/span><span class=\"n\">H3<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\"> <span class=\"m\">12<\/span><span class=\"p\">)<\/span>\n                <span class=\"p\">|<\/span> <span class=\"p\">(<\/span><span class=\"n\">H2<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\">  <span class=\"m\">8<\/span><span class=\"p\">)<\/span>\n                <span class=\"p\">|<\/span> <span class=\"p\">(<\/span><span class=\"n\">H1<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span> <span class=\"p\">  <span class=\"m\">4<\/span><span class=\"p\">)<\/span>\n                <span class=\"p\">|<\/span>  <span class=\"n\">H0<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"447:1-447:144\">\u3053\u3053\u307e\u3067\u6765\u308b\u3068\u3001\u300c\u578b\u5f15\u6570\u3068\u3057\u3066\u6e21\u3055\u308c\u3066\u3044\u308b\u30d3\u30c3\u30c8\u30d1\u30bf\u30fc\u30f3\u300d\u3060\u3051\u3067\u30ea\u30c6\u30e9\u30eb\u3092\u8868\u305b\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"449:1-449:224\">\u305f\u3068\u3048\u3070\u3001<code>42<\/code> \u3068\u3044\u3046\u6574\u6570\u30ea\u30c6\u30e9\u30eb\u306f <code>Int<hex0 hex0=\"\" hex2=\"\" hexa=\"\"\/><\/code> \u3068\u3044\u3046\u578b\u306b\u306a\u308a\u307e\u3059\u3002\u305d\u3057\u3066\u3001<code>'A'<\/code> \u3068\u3044\u3046\u6587\u5b57\u30ea\u30c6\u30e9\u30eb\u306f <code>Char<hex0 hex0=\"\" hex4=\"\" hex1=\"\"\/><\/code> \u3067\u3059\u3002<\/p>\n<h2 data-sourcepos=\"451:1-451:67\">\n<span id=\"32-\u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\u578b\u30ec\u30d9\u30eb\u306e\u30ea\u30f3\u30af\u30c8\u30ea\u30b9\u30c8\" class=\"fragment\"\/><a target=\"_blank\" href=\"#32-%E6%96%87%E5%AD%97%E5%88%97%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB%E5%9E%8B%E3%83%AC%E3%83%99%E3%83%AB%E3%81%AE%E3%83%AA%E3%83%B3%E3%82%AF%E3%83%88%E3%83%AA%E3%82%B9%E3%83%88\"><i class=\"fa fa-link\"\/><\/a>3.2 \u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\uff1a\u578b\u30ec\u30d9\u30eb\u306e\u30ea\u30f3\u30af\u30c8\u30ea\u30b9\u30c8<\/h2>\n<p data-sourcepos=\"453:1-453:54\">\u6587\u5b57\u5217\u306f\u3001\u3082\u3046\u4e00\u6bb5\u968e\u30c8\u30ea\u30c3\u30ad\u30fc\u3067\u3059\u3002<\/p>\n<p data-sourcepos=\"455:1-455:146\">TypedSql \u306f\u3001\u6587\u5b57\u5217\u3092\u300c\u6587\u5b57\u3054\u3068\u306e\u30ea\u30c6\u30e9\u30eb\u578b\u3092\u3064\u306a\u3052\u305f <strong>\u578b\u30ec\u30d9\u30eb\u306e\u30ea\u30f3\u30af\u30c8\u30ea\u30b9\u30c8<\/strong>\u300d\u3068\u3057\u3066\u8868\u73fe\u3057\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"457:1-457:66\">\u305d\u306e\u305f\u3081\u306e\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u304c <code>IStringNode<\/code> \u3067\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"459:1-465:3\" wp_automatic_readability=\"7\">\n<div class=\"highlight\" wp_automatic_readability=\"9\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">interface<\/span> <span class=\"nc\">IStringNode<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">static<\/span> <span class=\"k\">abstract<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">Length<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">static<\/span> <span class=\"k\">abstract<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">Write<\/span><span class=\"p\">(<\/span><span class=\"n\">Span<\/span><span class=\"p\"><span class=\"kt\">char<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">destination<\/span><span class=\"p\">,<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">index<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"467:1-467:33\">\u5b9f\u88c5\u306f 3 \u7a2e\u985e\u3042\u308a\u307e\u3059\u3002<\/p>\n<ul data-sourcepos=\"469:1-472:0\">\n<li data-sourcepos=\"469:1-469:38\">\n<code>StringEnd<\/code> \u2014 \u7d42\u7aef\uff08\u9577\u3055 0\uff09<\/li>\n<li data-sourcepos=\"470:1-470:68\">\n<code>StringNull<\/code> \u2014 <code>null<\/code> \u3092\u8868\u3059\u7279\u5225\u306a\u30ce\u30fc\u30c9\uff08\u9577\u3055 -1\uff09<\/li>\n<li data-sourcepos=\"471:1-472:0\">\n<code>StringNode<tchar tnext=\"\"\/><\/code> \u2014 1 \u6587\u5b57\uff0b\u6b8b\u308a<\/li>\n<\/ul>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"473:1-498:3\" wp_automatic_readability=\"10\">\n<div class=\"highlight\" wp_automatic_readability=\"15\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">StringEnd<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IStringNode<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">Length<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">Write<\/span><span class=\"p\">(<\/span><span class=\"n\">Span<\/span><span class=\"p\"><span class=\"kt\">char<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">destination<\/span><span class=\"p\">,<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">index<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span> <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">StringNull<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IStringNode<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">Length<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"p\">-<\/span><span class=\"m\">1<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">Write<\/span><span class=\"p\">(<\/span><span class=\"n\">Span<\/span><span class=\"p\"><span class=\"kt\">char<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">destination<\/span><span class=\"p\">,<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">index<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span> <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">StringNode<\/span><span class=\"p\"><span class=\"n\">TChar<\/span><span class=\"p\">,<\/span> <span class=\"n\">TNext<\/span><span class=\"p\">&gt;<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IStringNode<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TChar<\/span> <span class=\"p\">:<\/span> <span class=\"n\">ILiteral<\/span><span class=\"p\"><span class=\"kt\">char<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TNext<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IStringNode<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">Length<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"m\">1<\/span> <span class=\"p\">+<\/span> <span class=\"n\">TNext<\/span><span class=\"p\">.<\/span><span class=\"n\">Length<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">Write<\/span><span class=\"p\">(<\/span><span class=\"n\">Span<\/span><span class=\"p\"><span class=\"kt\">char<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">destination<\/span><span class=\"p\">,<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">index<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"n\">destination<\/span><span class=\"p\">[<\/span><span class=\"n\">index<\/span><span class=\"p\">]<\/span> <span class=\"p\">=<\/span> <span class=\"n\">TChar<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span><span class=\"p\">;<\/span>\n        <span class=\"n\">TNext<\/span><span class=\"p\">.<\/span><span class=\"nf\">Write<\/span><span class=\"p\">(<\/span><span class=\"n\">destination<\/span><span class=\"p\">,<\/span> <span class=\"n\">index<\/span> <span class=\"p\">+<\/span> <span class=\"m\">1<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"500:1-500:128\">\u3053\u306e\u300c\u578b\u30ec\u30d9\u30eb\u306e\u30ea\u30b9\u30c8\u300d\u304b\u3089\u3001\u5b9f\u969b\u306e <code>ValueString<\/code> \u3092\u7d44\u307f\u7acb\u3066\u308b\u306e\u304c <code>StringLiteral<tstring\/><\/code> \u3067\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"502:1-524:3\" wp_automatic_readability=\"9\">\n<div class=\"highlight\" wp_automatic_readability=\"13\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">readonly<\/span> <span class=\"k\">struct<\/span> <span class=\"nc\">StringLiteral<\/span><span class=\"p\"><span class=\"n\">TString<\/span><span class=\"p\">&gt;<\/span> <span class=\"p\">:<\/span> <span class=\"n\">ILiteral<\/span><span class=\"p\"><span class=\"n\">ValueString<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TString<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IStringNode<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"n\">ValueString<\/span> <span class=\"n\">Value<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"n\">Cache<\/span><span class=\"p\">.<\/span><span class=\"n\">Value<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">private<\/span> <span class=\"k\">static<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">Cache<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"k\">readonly<\/span> <span class=\"n\">ValueString<\/span> <span class=\"n\">Value<\/span> <span class=\"p\">=<\/span> <span class=\"nf\">Build<\/span><span class=\"p\">();<\/span>\n\n        <span class=\"k\">private<\/span> <span class=\"k\">static<\/span> <span class=\"n\">ValueString<\/span> <span class=\"nf\">Build<\/span><span class=\"p\">()<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"kt\">var<\/span> <span class=\"n\">length<\/span> <span class=\"p\">=<\/span> <span class=\"n\">TString<\/span><span class=\"p\">.<\/span><span class=\"n\">Length<\/span><span class=\"p\">;<\/span>\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">length<\/span> <span class=\"p\"> <span class=\"m\">0<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">ValueString<\/span><span class=\"p\">(<\/span><span class=\"k\">null<\/span><span class=\"p\">);<\/span>\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">length<\/span> <span class=\"p\">==<\/span> <span class=\"m\">0<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">ValueString<\/span><span class=\"p\">(<\/span><span class=\"kt\">string<\/span><span class=\"p\">.<\/span><span class=\"n\">Empty<\/span><span class=\"p\">);<\/span>\n\n            <span class=\"kt\">var<\/span> <span class=\"n\">chars<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"kt\">char<\/span><span class=\"p\">[<\/span><span class=\"n\">length<\/span><span class=\"p\">];<\/span>\n            <span class=\"n\">TString<\/span><span class=\"p\">.<\/span><span class=\"nf\">Write<\/span><span class=\"p\">(<\/span><span class=\"n\">chars<\/span><span class=\"p\">.<\/span><span class=\"nf\">AsSpan<\/span><span class=\"p\">(),<\/span> <span class=\"m\">0<\/span><span class=\"p\">);<\/span>\n            <span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"kt\">string<\/span><span class=\"p\">(<\/span><span class=\"n\">chars<\/span><span class=\"p\">,<\/span> <span class=\"m\">0<\/span><span class=\"p\">,<\/span> <span class=\"n\">length<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"526:1-526:105\">\u300c\u578b\u304b\u3089 1 \u5ea6\u3060\u3051\u6587\u5b57\u5217\u3092\u7d44\u307f\u7acb\u3066\u3066\u30ad\u30e3\u30c3\u30b7\u30e5\u3059\u308b\u300d\u3068\u3044\u3046\u30a4\u30e1\u30fc\u30b8\u3067\u3059\u3002<\/p>\n<h3 data-sourcepos=\"528:1-528:46\">\n<span id=\"321-seattle-\u306f\u3069\u3046\u578b\u306b\u306a\u308b\" class=\"fragment\"\/><a target=\"_blank\" href=\"#321-seattle-%E3%81%AF%E3%81%A9%E3%81%86%E5%9E%8B%E3%81%AB%E3%81%AA%E3%82%8B\"><i class=\"fa fa-link\"\/><\/a>3.2.1 <code>'Seattle'<\/code> \u306f\u3069\u3046\u578b\u306b\u306a\u308b\uff1f<\/h3>\n<p data-sourcepos=\"530:1-530:66\"><code>WHERE City = 'Seattle'<\/code> \u3068\u3044\u3046 SQL \u3092\u4f8b\u306b\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<ol data-sourcepos=\"532:1-538:0\">\n<li data-sourcepos=\"532:1-535:48\">\u30d1\u30fc\u30b5\u306f <code>'Seattle'<\/code> \u3092\u898b\u3064\u3051\u3066\u3001\n<ul data-sourcepos=\"533:4-535:48\">\n<li data-sourcepos=\"533:4-533:32\"><code>Kind = LiteralKind.String<\/code><\/li>\n<li data-sourcepos=\"534:4-535:48\">\n<code>StringValue = \"Seattle\"<\/code><br \/>\u3068\u3044\u3046\u30ea\u30c6\u30e9\u30eb\u60c5\u5831\u3092\u4f5c\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n<\/li>\n<li data-sourcepos=\"536:1-536:104\">\u30b3\u30f3\u30d1\u30a4\u30e9\u306f\u5bfe\u5fdc\u3059\u308b\u5217\u304c\u6587\u5b57\u5217\uff08\u5b9f\u969b\u306b\u306f <code>ValueString<\/code>\uff09\u3060\u3068\u5224\u65ad\u3057\u307e\u3059\u3002<\/li>\n<li data-sourcepos=\"537:1-538:0\">\n<code>LiteralTypeFactory.CreateStringLiteral(\"Seattle\")<\/code> \u304c\u547c\u3070\u308c\u307e\u3059\u3002<\/li>\n<\/ol>\n<p data-sourcepos=\"539:1-539:81\">\u3053\u306e\u30e1\u30bd\u30c3\u30c9\u306e\u4e2d\u3067\u306f\u3001\u3056\u3063\u304f\u308a\u6b21\u306e\u3088\u3046\u306a\u51e6\u7406\u3092\u3057\u307e\u3059\u3002<\/p>\n<ul data-sourcepos=\"541:1-545:0\">\n<li data-sourcepos=\"541:1-541:30\">\u6700\u521d\u306b <code>type = StringEnd<\/code>\n<\/li>\n<li data-sourcepos=\"542:1-542:62\">\u6587\u5b57\u5217\u3092\u5f8c\u308d\u304b\u3089\u524d\u306b\u4e00\u6587\u5b57\u305a\u3064\u898b\u3066\u3044\u304d\u3001<\/li>\n<li data-sourcepos=\"543:1-543:45\">\u5404\u6587\u5b57\u3092 <code>Char<...\/><\/code> \u578b\u306b\u5909\u63db\u3057\u3001<\/li>\n<li data-sourcepos=\"544:1-545:0\">\n<code>StringNode<char>, StringEnd&gt;<\/char><\/code> \u306e\u3088\u3046\u306b\u3069\u3093\u3069\u3093\u524d\u306b\u7d99\u304e\u8db3\u3057\u3066\u3044\u304f<\/li>\n<\/ul>\n<p data-sourcepos=\"546:1-546:60\">\u6700\u7d42\u5f62\u306f\u3001\u6982\u306d\u3053\u3093\u306a\u611f\u3058\u306e\u578b\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"548:1-556:3\" wp_automatic_readability=\"10\">\n<div class=\"highlight\" wp_automatic_readability=\"15\">\n<pre><code><span class=\"n\">StringNode<\/span><span class=\"p\"><span class=\"n\">Char<\/span><span class=\"p\"><span class=\"sc\">'S'<\/span><span class=\"p\">&gt;,<\/span>\n  <span class=\"n\">StringNode<\/span><span class=\"p\"><span class=\"n\">Char<\/span><span class=\"p\"><span class=\"sc\">'e'<\/span><span class=\"p\">&gt;,<\/span>\n    <span class=\"n\">StringNode<\/span><span class=\"p\"><span class=\"n\">Char<\/span><span class=\"p\"><span class=\"sc\">'a'<\/span><span class=\"p\">&gt;,<\/span>\n      <span class=\"n\">StringNode<\/span><span class=\"p\"><span class=\"n\">Char<\/span><span class=\"p\"><span class=\"sc\">'t'<\/span><span class=\"p\">&gt;,<\/span>\n        <span class=\"n\">StringNode<\/span><span class=\"p\"><span class=\"n\">Char<\/span><span class=\"p\"><span class=\"sc\">'t'<\/span><span class=\"p\">&gt;,<\/span>\n          <span class=\"n\">StringNode<\/span><span class=\"p\"><span class=\"n\">Char<\/span><span class=\"p\"><span class=\"sc\">'l'<\/span><span class=\"p\">&gt;,<\/span>\n            <span class=\"n\">StringNode<\/span><span class=\"p\"><span class=\"n\">Char<\/span><span class=\"p\"><span class=\"sc\">'e'<\/span><span class=\"p\">&gt;,<\/span> <span class=\"n\">StringEnd<\/span><span class=\"p\">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"558:1-558:122\">\u3053\u308c 1 \u3064\u306e\u9589\u3058\u305f\u30b8\u30a7\u30cd\u30ea\u30c3\u30af\u578b\u304c\u3001<strong>\u300c\u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb &#8216;Seattle&#8217;\u300d\u305d\u306e\u3082\u306e<\/strong>\u3092\u8868\u3057\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"560:1-560:113\"><code>EqualsFilter<\/code> \u306f\u3001\u3053\u3053\u304b\u3089 <code>TLiteral.Value<\/code> \u3092\u901a\u3058\u3066 <code>ValueString(\"Seattle\")<\/code> \u3092\u53d6\u308a\u51fa\u3057\u307e\u3059\u3002<\/p>\n<h3 data-sourcepos=\"562:1-562:47\">\n<span id=\"322-null-\u6587\u5b57\u5217\u3082\u578b\u3067\u533a\u5225\u3059\u308b\" class=\"fragment\"\/><a target=\"_blank\" href=\"#322-null-%E6%96%87%E5%AD%97%E5%88%97%E3%82%82%E5%9E%8B%E3%81%A7%E5%8C%BA%E5%88%A5%E3%81%99%E3%82%8B\"><i class=\"fa fa-link\"\/><\/a>3.2.2 <code>null<\/code> \u6587\u5b57\u5217\u3082\u578b\u3067\u533a\u5225\u3059\u308b<\/h3>\n<p data-sourcepos=\"564:1-564:49\"><code>null<\/code> \u3082\u3061\u3083\u3093\u3068\u578b\u3068\u3057\u3066\u6271\u3044\u307e\u3059\u3002<\/p>\n<ul data-sourcepos=\"566:1-569:0\">\n<li data-sourcepos=\"566:1-566:113\">\n<code>WHERE Team != null<\/code> \u3068\u3044\u3046\u6761\u4ef6\u306a\u3089\u3001\u30d1\u30fc\u30b5\u306f <code>Kind = LiteralKind.Null<\/code> \u3068\u3057\u3066\u8a18\u9332\u3057\u307e\u3059\u3002<\/li>\n<li data-sourcepos=\"567:1-567:88\">\u6587\u5b57\u5217\u5217\u306b\u5bfe\u3057\u3066\u306f <code>StringLiteral<stringnull\/><\/code> \u3068\u3044\u3046\u578b\u3092\u4f7f\u3044\u307e\u3059\u3002<\/li>\n<li data-sourcepos=\"568:1-569:0\">\n<code>StringNull.Length = -1<\/code> \u306a\u306e\u3067\u3001<code>Value<\/code> \u306f <code>new ValueString(null)<\/code> \u3092\u8fd4\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n<p data-sourcepos=\"570:1-570:97\">\u3053\u308c\u3067\u3001<code>null<\/code> \u3068 <code>\"\"<\/code> \u3092\u578b\u30ec\u30d9\u30eb\u3067\u3082\u5b9f\u884c\u6642\u3067\u3082\u304d\u3061\u3093\u3068\u533a\u5225\u3067\u304d\u307e\u3059\u3002<\/p>\n<h2 data-sourcepos=\"572:1-572:34\">\n<span id=\"33-\u30ea\u30c6\u30e9\u30eb\u30d5\u30a1\u30af\u30c8\u30ea\" class=\"fragment\"\/><a target=\"_blank\" href=\"#33-%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB%E3%83%95%E3%82%A1%E3%82%AF%E3%83%88%E3%83%AA\"><i class=\"fa fa-link\"\/><\/a>3.3 \u30ea\u30c6\u30e9\u30eb\u30d5\u30a1\u30af\u30c8\u30ea<\/h2>\n<p data-sourcepos=\"574:1-574:96\">\u3053\u308c\u3089\u306e\u30ea\u30c6\u30e9\u30eb\u578b\u306f\u3001<code>LiteralTypeFactory<\/code> \u306b\u3088\u3063\u3066\u4e00\u62ec\u3067\u751f\u6210\u3055\u308c\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"576:1-584:3\" wp_automatic_readability=\"7\">\n<div class=\"highlight\" wp_automatic_readability=\"9\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">static<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">LiteralTypeFactory<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"n\">Type<\/span> <span class=\"nf\">CreateIntLiteral<\/span><span class=\"p\">(<\/span><span class=\"kt\">int<\/span> <span class=\"k\">value<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span> <span class=\"p\">...<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"n\">Type<\/span> <span class=\"nf\">CreateFloatLiteral<\/span><span class=\"p\">(<\/span><span class=\"kt\">float<\/span> <span class=\"k\">value<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span> <span class=\"p\">...<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"n\">Type<\/span> <span class=\"nf\">CreateBoolLiteral<\/span><span class=\"p\">(<\/span><span class=\"kt\">bool<\/span> <span class=\"k\">value<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span> <span class=\"p\">...<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"n\">Type<\/span> <span class=\"nf\">CreateStringLiteral<\/span><span class=\"p\">(<\/span><span class=\"kt\">string<\/span><span class=\"p\">?<\/span> <span class=\"k\">value<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span> <span class=\"p\">...<\/span> <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"586:1-586:25\">SQL \u30b3\u30f3\u30d1\u30a4\u30e9\u306f\u3001<\/p>\n<ul data-sourcepos=\"588:1-590:0\">\n<li data-sourcepos=\"588:1-588:73\">\u5b9f\u884c\u6642\u306e\u5217\u306e\u578b\uff08<code>int<\/code>, <code>float<\/code>, <code>bool<\/code>, <code>ValueString<\/code> \u306a\u3069\uff09<\/li>\n<li data-sourcepos=\"589:1-590:0\">\u30ea\u30c6\u30e9\u30eb\u306e\u7a2e\u985e\uff08\u6574\u6570\u30fb\u6d6e\u52d5\u5c0f\u6570\u30fb\u771f\u507d\u5024\u30fb\u6587\u5b57\u5217\u30fbnull\uff09<\/li>\n<\/ul>\n<p data-sourcepos=\"591:1-591:75\">\u306b\u5fdc\u3058\u3066\u3001\u9069\u5207\u306a <code>ILiteral<t\/><\/code> \u578b\u3092\u3053\u3053\u304b\u3089\u53d6\u5f97\u3057\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"593:1-593:152\">\u7d50\u679c\u3068\u3057\u3066\u3001<strong>WHERE \u53e5\u306b\u51fa\u3066\u304f\u308b\u3059\u3079\u3066\u306e\u30ea\u30c6\u30e9\u30eb\u304c\u3001\u300c\u5024\u3092\u578b\u5f15\u6570\u306b\u57cb\u3081\u8fbc\u3093\u3060 <code>ILiteral<t\/><\/code> \u578b\u300d<\/strong> \u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"598:1-598:54\">\u3053\u3053\u307e\u3067\u3067\u3001\u6b21\u306e\u3082\u306e\u304c\u305d\u308d\u3044\u307e\u3057\u305f\u3002<\/p>\n<ul data-sourcepos=\"600:1-603:0\">\n<li data-sourcepos=\"600:1-600:58\">\u30d1\u30fc\u30b9\u6e08\u307f\u30af\u30a8\u30ea\uff08SELECT \u3068 WHERE \u306e\u69cb\u9020\uff09<\/li>\n<li data-sourcepos=\"601:1-601:66\">\u5217\u540d\u304b\u3089 <code>IColumn<trow tvalue=\"\"\/><\/code> \u5b9f\u88c5\u3078\u306e\u30de\u30c3\u30d4\u30f3\u30b0<\/li>\n<li data-sourcepos=\"602:1-603:0\">\u30ea\u30c6\u30e9\u30eb\u3092\u8868\u3059 <code>ILiteral<t\/><\/code> \u578b<\/li>\n<\/ul>\n<p data-sourcepos=\"604:1-604:87\">\u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u4ed5\u4e8b\u306f\u3001\u3053\u308c\u3089\u3092\u4f7f\u3063\u3066\u6b21\u306e 3 \u3064\u3092\u4f5c\u308b\u3053\u3068\u3067\u3059\u3002<\/p>\n<ul data-sourcepos=\"606:1-609:0\">\n<li data-sourcepos=\"606:1-606:131\">\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u672c\u4f53 <code>TPipeline<\/code>\uff08<code>IQueryNode<trow truntimeresult=\"\" troot=\"\"\/><\/code> \u3092\u5b9f\u88c5\u3059\u308b\u9589\u3058\u305f\u30b8\u30a7\u30cd\u30ea\u30c3\u30af\u578b\uff09<\/li>\n<li data-sourcepos=\"607:1-607:40\">\u5b9f\u884c\u6642\u306e\u7d50\u679c\u578b <code>TRuntimeResult<\/code>\n<\/li>\n<li data-sourcepos=\"608:1-609:0\">\u516c\u958b\u3059\u308b\u7d50\u679c\u578b <code>TPublicResult<\/code>\n<\/li>\n<\/ul>\n<h2 data-sourcepos=\"610:1-610:23\">\n<span id=\"41-select-\u306e\u6271\u3044\" class=\"fragment\"\/><a target=\"_blank\" href=\"#41-select-%E3%81%AE%E6%89%B1%E3%81%84\"><i class=\"fa fa-link\"\/><\/a>4.1 SELECT \u306e\u6271\u3044<\/h2>\n<p data-sourcepos=\"612:1-612:32\">\u307e\u305a\u306f SELECT \u304b\u3089\u3067\u3059\u3002<\/p>\n<h3 data-sourcepos=\"614:1-614:14\">\n<span id=\"select-\" class=\"fragment\"\/><a target=\"_blank\" href=\"#select-\"><i class=\"fa fa-link\"\/><\/a><code>SELECT *<\/code><br \/>\n<\/h3>\n<p data-sourcepos=\"616:1-616:52\">\u4e00\u756a\u30b7\u30f3\u30d7\u30eb\u306a <code>SELECT * FROM $<\/code> \u306e\u5834\u5408\u3001<\/p>\n<ul data-sourcepos=\"618:1-620:0\">\n<li data-sourcepos=\"618:1-618:57\">\u5b9f\u884c\u6642\u306e\u7d50\u679c\u578b\u3082\u516c\u958b\u3059\u308b\u7d50\u679c\u578b\u3082 <code>TRow<\/code>\n<\/li>\n<li data-sourcepos=\"619:1-620:0\">\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306e\u672b\u5c3e\u306f <code>Stop<trow trow=\"\"\/><\/code>\n<\/li>\n<\/ul>\n<p data-sourcepos=\"621:1-621:18\">\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"623:1-627:3\" wp_automatic_readability=\"7\">\n<div class=\"highlight\" wp_automatic_readability=\"9\">\n<pre><code><span class=\"n\">TRuntimeResult<\/span> <span class=\"p\">=<\/span> <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">TRow<\/span><span class=\"p\">);<\/span>\n<span class=\"n\">TPublicResult<\/span> <span class=\"p\">=<\/span> <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">TRow<\/span><span class=\"p\">);<\/span>\n<span class=\"n\">TPipelineTail<\/span> <span class=\"p\">=<\/span> <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">Stop<\/span><span class=\"p\">).<\/span><span class=\"nf\">MakeGenericType<\/span><span class=\"p\">(<\/span><span class=\"n\">TRuntimeResult<\/span><span class=\"p\">,<\/span> <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">TRow<\/span><span class=\"p\">));<\/span>\n<\/code><\/pre>\n<\/div>\n<\/div>\n<h3 data-sourcepos=\"629:1-629:43\">\n<span id=\"select-col--select-col1-col2-\" class=\"fragment\"\/><a target=\"_blank\" href=\"#select-col--select-col1-col2-\"><i class=\"fa fa-link\"\/><\/a><code>SELECT col<\/code> \/ <code>SELECT col1, col2, ...<\/code><br \/>\n<\/h3>\n<p data-sourcepos=\"631:1-631:81\">\u6295\u5f71\uff08\u5217\u306e\u9078\u629e\uff09\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u5c11\u3057\u3060\u3051\u624b\u9806\u304c\u5897\u3048\u307e\u3059\u3002<\/p>\n<ul data-sourcepos=\"633:1-644:0\" wp_automatic_readability=\"-1\">\n<li data-sourcepos=\"633:1-639:0\">\n<p data-sourcepos=\"633:3-633:24\"><code>SELECT col<\/code> \u306e\u5834\u5408<\/p>\n<ul data-sourcepos=\"634:3-639:0\">\n<li data-sourcepos=\"634:3-634:43\">\u5217\u540d\u304b\u3089 <code>ColumnMetadata<\/code> \u3092\u89e3\u6c7a<\/li>\n<li data-sourcepos=\"635:3-637:45\">\u5b9f\u884c\u6642\u306e\u5024\u578b\u3092\u6c7a\u3081\u308b\n<ul data-sourcepos=\"636:5-637:45\">\n<li data-sourcepos=\"636:5-636:39\">\n<code>string<\/code> \u4ee5\u5916\u306a\u3089\u305d\u306e\u307e\u307e<\/li>\n<li data-sourcepos=\"637:5-637:45\">\n<code>string<\/code> \u306a\u3089 <code>ValueString<\/code> \u306b\u5909\u63db<\/li>\n<\/ul>\n<\/li>\n<li data-sourcepos=\"638:3-639:0\">\n<code>ColumnProjection<truntimecolumn trow=\"\" truntimevalue=\"\"\/><\/code> \u3092\u7d44\u307f\u7acb\u3066\u308b<\/li>\n<\/ul>\n<\/li>\n<li data-sourcepos=\"640:1-644:0\" wp_automatic_readability=\"1\">\n<p data-sourcepos=\"640:3-640:36\"><code>SELECT col1, col2, ...<\/code> \u306e\u5834\u5408<\/p>\n<ul data-sourcepos=\"641:3-644:0\">\n<li data-sourcepos=\"641:3-641:22\">\u5404\u5217\u3092\u89e3\u6c7a\u3057<\/li>\n<li data-sourcepos=\"642:3-642:103\">\u5b9f\u884c\u6642\u306b\u306f <code>ValueTuple<...\/><\/code>\uff08\u4e2d\u8eab\u306f <code>ValueString<\/code> \u306a\u3069\uff09\u3092\u4f5c\u308b projection \u3092\u4f5c\u308a<\/li>\n<li data-sourcepos=\"643:3-644:0\">\u516c\u958b\u578b\u306b\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u306e\u6307\u5b9a\u3069\u304a\u308a\u306e <code>ValueTuple<...\/><\/code>\uff08\u4e2d\u8eab\u306f <code>string<\/code> \u306a\u3069\uff09\u3092\u4f7f\u3046<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p data-sourcepos=\"645:1-645:93\">\u6700\u7d42\u7684\u306b\u306f\u3001\u3069\u306e\u5834\u5408\u3082 <code>Select<\/code> \u30ce\u30fc\u30c9\u3092 <code>Stop<\/code> \u306e\u76f4\u524d\u306b\u633f\u5165\u3057\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"text\" data-sourcepos=\"647:1-649:3\" wp_automatic_readability=\"7.5\">\n<div class=\"highlight\" wp_automatic_readability=\"10\">\n<pre><code>Select<trow tprojection=\"\" stop=\"\">, TMiddle, TRuntimeResult, TRoot&gt; \u2192 Stop<...>\n<\/...><\/trow><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"651:1-651:92\">\u3053\u306e\u30ce\u30fc\u30c9\u306f\u3001<code>Project<\/code> \u306e\u7d50\u679c\u3092 <code>Stop.Process<\/code> \u306b\u6e21\u3059\u5f79\u5272\u3092\u6301\u3061\u307e\u3059\u3002<\/p>\n<h2 data-sourcepos=\"653:1-653:22\">\n<span id=\"42-where-\u306e\u6271\u3044\" class=\"fragment\"\/><a target=\"_blank\" href=\"#42-where-%E3%81%AE%E6%89%B1%E3%81%84\"><i class=\"fa fa-link\"\/><\/a>4.2 WHERE \u306e\u6271\u3044<\/h2>\n<p data-sourcepos=\"655:1-655:83\"><code>WHERE<\/code> \u53e5\u306f\u3001\u69cb\u6587\u6728\u304b\u3089\u518d\u5e30\u7684\u306b\u30d5\u30a3\u30eb\u30bf\u578b\u3092\u7d44\u307f\u7acb\u3066\u307e\u3059\u3002<\/p>\n<h3 data-sourcepos=\"657:1-657:39\">\n<span id=\"\u8ad6\u7406\u6f14\u7b97\u5b50and--or--not\" class=\"fragment\"\/><a target=\"_blank\" href=\"#%E8%AB%96%E7%90%86%E6%BC%94%E7%AE%97%E5%AD%90and--or--not\"><i class=\"fa fa-link\"\/><\/a>\u8ad6\u7406\u6f14\u7b97\u5b50\uff08AND \/ OR \/ NOT\uff09<\/h3>\n<p data-sourcepos=\"659:1-659:93\"><code>WhereExpression<\/code> \u306e\u6728\u69cb\u9020\u3092\u3001\u5bfe\u5fdc\u3059\u308b\u30d5\u30a3\u30eb\u30bf\u578b\u306b\u30de\u30c3\u30d4\u30f3\u30b0\u3057\u307e\u3059\u3002<\/p>\n<ul data-sourcepos=\"661:1-664:0\">\n<li data-sourcepos=\"661:1-661:41\">\n<code>A AND B<\/code> \u2192 <code>AndFilter<trow ta=\"\" tb=\"\"\/><\/code>\n<\/li>\n<li data-sourcepos=\"662:1-662:39\">\n<code>A OR B<\/code> \u2192 <code>OrFilter<trow ta=\"\" tb=\"\"\/><\/code>\n<\/li>\n<li data-sourcepos=\"663:1-664:0\">\n<code>NOT A<\/code> \u2192 <code>NotFilter<trow ta=\"\"\/><\/code>\n<\/li>\n<\/ul>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"665:1-685:3\" wp_automatic_readability=\"12\">\n<div class=\"highlight\" wp_automatic_readability=\"19\">\n<pre><code><span class=\"n\">Type<\/span> <span class=\"n\">BuildPredicate<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;(<\/span><span class=\"n\">WhereExpression<\/span> <span class=\"n\">expr<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">expr<\/span> <span class=\"k\">switch<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"n\">ComparisonExpression<\/span> <span class=\"n\">cmpExpr<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"n\">BuildComparisonPredicate<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;(<\/span><span class=\"n\">cmpExpr<\/span><span class=\"p\">),<\/span>\n        <span class=\"n\">AndExpression<\/span> <span class=\"n\">andExpr<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">AndFilter<\/span><span class=\"p\">).<\/span><span class=\"nf\">MakeGenericType<\/span><span class=\"p\">(<\/span>\n            <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">TRow<\/span><span class=\"p\">),<\/span>\n            <span class=\"n\">BuildPredicate<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;(<\/span><span class=\"n\">andExpr<\/span><span class=\"p\">.<\/span><span class=\"n\">Left<\/span><span class=\"p\">),<\/span>\n            <span class=\"n\">BuildPredicate<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;(<\/span><span class=\"n\">andExpr<\/span><span class=\"p\">.<\/span><span class=\"n\">Right<\/span><span class=\"p\">)),<\/span>\n        <span class=\"n\">OrExpression<\/span> <span class=\"n\">orExpr<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">OrFilter<\/span><span class=\"p\">).<\/span><span class=\"nf\">MakeGenericType<\/span><span class=\"p\">(<\/span>\n            <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">TRow<\/span><span class=\"p\">),<\/span>\n            <span class=\"n\">BuildPredicate<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;(<\/span><span class=\"n\">orExpr<\/span><span class=\"p\">.<\/span><span class=\"n\">Left<\/span><span class=\"p\">),<\/span>\n            <span class=\"n\">BuildPredicate<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;(<\/span><span class=\"n\">orExpr<\/span><span class=\"p\">.<\/span><span class=\"n\">Right<\/span><span class=\"p\">)),<\/span>\n        <span class=\"n\">NotExpression<\/span> <span class=\"n\">notExpr<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">NotFilter<\/span><span class=\"p\">).<\/span><span class=\"nf\">MakeGenericType<\/span><span class=\"p\">(<\/span>\n            <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">TRow<\/span><span class=\"p\">),<\/span>\n            <span class=\"n\">BuildPredicate<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;(<\/span><span class=\"n\">notExpr<\/span><span class=\"p\">.<\/span><span class=\"n\">Expression<\/span><span class=\"p\">)),<\/span>\n        <span class=\"n\">_<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"k\">throw<\/span> <span class=\"p\">...<\/span>\n    <span class=\"p\">};<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h3 data-sourcepos=\"687:1-687:42\">\n<span id=\"\u6bd4\u8f03\u6f14\u7b97\u5b50-\u306a\u3069\" class=\"fragment\"\/><a target=\"_blank\" href=\"#%E6%AF%94%E8%BC%83%E6%BC%94%E7%AE%97%E5%AD%90-%E3%81%AA%E3%81%A9\"><i class=\"fa fa-link\"\/><\/a>\u6bd4\u8f03\u6f14\u7b97\u5b50\uff08=\u3001!=\u3001&gt; \u306a\u3069\uff09<\/h3>\n<p data-sourcepos=\"689:1-689:57\">\u8449\u30ce\u30fc\u30c9\u306f\u300c\u5217\u3068\u30ea\u30c6\u30e9\u30eb\u306e\u6bd4\u8f03\u300d\u3067\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"sql\" data-sourcepos=\"691:1-695:3\" wp_automatic_readability=\"6\">\n<div class=\"highlight\" wp_automatic_readability=\"7\">\n<pre><code><span class=\"n\">City<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'Seattle'<\/span>\n<span class=\"n\">Salary<\/span> <span class=\"o\">&gt;=<\/span> <span class=\"mi\">180000<\/span>\n<span class=\"n\">Team<\/span> <span class=\"o\">!=<\/span> <span class=\"k\">null<\/span>\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"697:1-697:118\">\u3053\u308c\u3089\u306f\u6700\u7d42\u7684\u306b\u3001\u6b21\u306e\u3088\u3046\u306a\u578b\u306b\u306a\u308a\u307e\u3059\uff08\u4f8b\uff1a\u6587\u5b57\u5217\u5217\u306b\u5bfe\u3059\u308b <code>City = 'Seattle'<\/code>\uff09\u3002<\/p>\n<ul data-sourcepos=\"699:1-702:0\">\n<li data-sourcepos=\"699:1-699:69\">\u5b9f\u884c\u6642\u306e\u5217\u578b\u306f <code>ValueStringColumn<personcitycolumn person=\"\"\/><\/code>\n<\/li>\n<li data-sourcepos=\"700:1-700:37\">\u5b9f\u884c\u6642\u306e\u5024\u578b\u306f <code>ValueString<\/code>\n<\/li>\n<li data-sourcepos=\"701:1-702:0\">\u30ea\u30c6\u30e9\u30eb\u578b\u306f <code>StringLiteral<somestringnode>&gt;<\/somestringnode><\/code>\n<\/li>\n<\/ul>\n<p data-sourcepos=\"703:1-703:12\">\u3064\u307e\u308a\u3001<\/p>\n<div class=\"code-frame\" data-lang=\"text\" data-sourcepos=\"705:1-710:3\" wp_automatic_readability=\"7\">\n<div class=\"highlight\" wp_automatic_readability=\"9\">\n<pre><code>EqualsFilter<person valuestringcolumn=\"\" person=\"\">,\n             StringLiteral<...>,\n             ValueString&gt;\n<\/...><\/person><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"712:1-712:42\">\u306e\u3088\u3046\u306a\u578b\u304c\u7d44\u307f\u4e0a\u304c\u308a\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"714:1-714:156\">\u30b3\u30f3\u30d1\u30a4\u30e9\u306f\u3053\u308c\u3092 <code>Where<trow tpredicate=\"\" tnext=\"\" truntimeresult=\"\" troot=\"\"\/><\/code> \u30ce\u30fc\u30c9\u306b\u304f\u3063\u3064\u3051\u3066\u3001\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306b\u7d44\u307f\u8fbc\u307f\u307e\u3059\u3002<\/p>\n<h2 data-sourcepos=\"716:1-716:63\">\n<span id=\"43-where-\u3068-select-\u3092\u878d\u5408\u3057\u3066-1-\u30d1\u30b9\u306b\u3059\u308b\" class=\"fragment\"\/><a target=\"_blank\" href=\"#43-where-%E3%81%A8-select-%E3%82%92%E8%9E%8D%E5%90%88%E3%81%97%E3%81%A6-1-%E3%83%91%E3%82%B9%E3%81%AB%E3%81%99%E3%82%8B\"><i class=\"fa fa-link\"\/><\/a>4.3 Where \u3068 Select \u3092\u300c\u878d\u5408\u300d\u3057\u3066 1 \u30d1\u30b9\u306b\u3059\u308b<\/h2>\n<p data-sourcepos=\"718:1-718:162\">\u3053\u3053\u307e\u3067\u3067\u7d44\u307f\u4e0a\u304c\u3063\u305f\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306f\u3001\u6b63\u3057\u3055\u3068\u3044\u3046\u610f\u5473\u3067\u306f\u554f\u984c\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u5c11\u3057\u3060\u3051\u6700\u9069\u5316\u306e\u4f59\u5730\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"720:1-720:78\">\u5178\u578b\u7684\u306a\u30af\u30a8\u30ea\u306f\u3001\u3060\u3044\u305f\u3044\u6b21\u306e\u3088\u3046\u306a\u5f62\u3092\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"sql\" data-sourcepos=\"722:1-724:3\" wp_automatic_readability=\"6\">\n<div class=\"highlight\" wp_automatic_readability=\"7\">\n<pre><code><span class=\"k\">SELECT<\/span> <span class=\"n\">Name<\/span> <span class=\"k\">FROM<\/span> <span class=\"err\">$<\/span> <span class=\"k\">WHERE<\/span> <span class=\"n\">City<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'Seattle'<\/span>\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"726:1-726:30\">\u7d20\u76f4\u306b\u7d44\u307f\u7acb\u3066\u308b\u3068\u3001<\/p>\n<div class=\"code-frame\" data-lang=\"text\" data-sourcepos=\"728:1-730:3\" wp_automatic_readability=\"6\">\n<div class=\"highlight\" wp_automatic_readability=\"7\">\n<pre><code>Where<...> \u2192 Select<...> \u2192 Stop<...>\n<\/...><\/...><\/...><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"732:1-732:105\">\u3068\u3044\u3046 2 \u30b9\u30c6\u30fc\u30b8\u69cb\u6210\u306b\u306a\u308a\u307e\u3059\u304c\u3001\u3053\u308c\u306f 1 \u3064\u306b\u307e\u3068\u3081\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"734:1-734:60\">TypedSql \u306b\u306f\u3001\u5c0f\u3055\u306a\u30aa\u30d7\u30c6\u30a3\u30de\u30a4\u30b6\u304c\u3042\u308a\u3001<\/p>\n<p data-sourcepos=\"738:1-738:54\">\u306e\u3088\u3046\u306a\u30d1\u30bf\u30fc\u30f3\u3092\u898b\u3064\u3051\u308b\u3068\u3001\u3053\u308c\u3092<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"740:1-742:3\" wp_automatic_readability=\"9\">\n<div class=\"highlight\" wp_automatic_readability=\"13\">\n<pre><code><span class=\"n\">WhereSelect<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TPredicate<\/span><span class=\"p\">,<\/span> <span class=\"n\">TProjection<\/span><span class=\"p\">,<\/span> <span class=\"n\">TNext<\/span><span class=\"err\">'<\/span><span class=\"p\">,<\/span> <span class=\"n\">TMiddle<\/span><span class=\"p\">,<\/span> <span class=\"n\">TResult<\/span><span class=\"p\">,<\/span> <span class=\"n\">TRoot<\/span><span class=\"p\">&gt;<\/span>\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"744:1-744:24\">\u306b\u7f6e\u304d\u63db\u3048\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"746:1-746:55\"><code>WhereSelect<\/code> \u30ce\u30fc\u30c9\u306f\u30011 \u3064\u306e\u30eb\u30fc\u30d7\u306e\u4e2d\u3067<\/p>\n<ul data-sourcepos=\"748:1-751:0\">\n<li data-sourcepos=\"748:1-748:49\">\u307e\u305a <code>TPredicate.Evaluate<\/code> \u3067\u30d5\u30a3\u30eb\u30bf\u3057<\/li>\n<li data-sourcepos=\"749:1-749:55\">\u901a\u3063\u305f\u884c\u3060\u3051 <code>TProjection.Project<\/code> \u3067\u6295\u5f71\u3057<\/li>\n<li data-sourcepos=\"750:1-751:0\">\u305d\u306e\u7d50\u679c\u3092\u6b21\u306e\u30ce\u30fc\u30c9\u306b\u6e21\u3059<\/li>\n<\/ul>\n<p data-sourcepos=\"752:1-752:36\">\u3068\u3044\u3046\u4ed5\u4e8b\u3092\u3053\u306a\u3057\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"754:1-754:89\">\u7d50\u679c\u3068\u3057\u3066\u3001<code>SELECT Name FROM $ WHERE City = 'Seattle'<\/code> \u306e\u3088\u3046\u306a\u30af\u30a8\u30ea\u306f\u3001<\/p>\n<p data-sourcepos=\"760:1-760:53\">\u3068\u3044\u3046 <strong>1 \u30d1\u30b9\u306e\u30eb\u30fc\u30d7<\/strong> \u306b\u843d\u3061\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"762:1-762:457\">\u3055\u3089\u306b\u3001\u3053\u306e\u30aa\u30d7\u30c6\u30a3\u30de\u30a4\u30b6\u306f\u3082\u3046\u5c11\u3057\u8907\u96d1\u306a\u30cd\u30b9\u30c8\u69cb\u9020\u3082\u3042\u308b\u7a0b\u5ea6\u307e\u3067\u8a8d\u8b58\u3057\u3066\u3001\u53ef\u80fd\u306a\u9650\u308a <code>Where<\/code> \u3068 <code>Select<\/code> \u3092\u307e\u3068\u3081\u3066\u3057\u307e\u3044\u307e\u3059\u3002\u3053\u3053\u3067\u3084\u3063\u3066\u3044\u308b\u3053\u3068\u306f\u96e3\u3057\u3044\u6700\u9069\u5316\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3067\u306f\u306a\u304f\u3001\u300c\u65e2\u5b58\u306e\u30b8\u30a7\u30cd\u30ea\u30c3\u30af\u578b\u306e\u5f15\u6570\u3092\u3070\u3089\u3057\u3066\u3001\u65b0\u3057\u3044\u878d\u5408\u30ce\u30fc\u30c9\u306e\u578b\u5f15\u6570\u3068\u3057\u3066\u7d44\u307f\u7acb\u3066\u76f4\u3059\u300d\u3060\u3051\u306a\u306e\u3067\u3001\u5b9f\u88c5\u81ea\u4f53\u306f\u304b\u306a\u308a\u30b7\u30f3\u30d7\u30eb\u3067\u3059\u3002<\/p>\n<p data-sourcepos=\"767:1-767:126\">\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u5185\u90e8\u3067\u4f7f\u3063\u3066\u3044\u308b\u578b\u3068\u3001\u30e6\u30fc\u30b6\u30fc\u304c\u6b32\u3057\u3044\u578b\u306f\u3001\u5fc5\u305a\u3057\u3082\u540c\u3058\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n<p data-sourcepos=\"769:1-769:12\">\u4f8b\u3048\u3070\u3001<\/p>\n<ul data-sourcepos=\"771:1-773:0\">\n<li data-sourcepos=\"771:1-771:28\">\u5185\u90e8\u3067\u306f <code>ValueString<\/code>\n<\/li>\n<li data-sourcepos=\"772:1-773:0\">\u30e6\u30fc\u30b6\u30fc\u306b\u306f <code>string<\/code> \u3092\u8fd4\u3057\u305f\u3044<\/li>\n<\/ul>\n<p data-sourcepos=\"774:1-774:99\">\u3068\u3044\u3063\u305f\u30ba\u30ec\u304c\u3042\u308a\u307e\u3059\u3002\u305d\u306e\u5dee\u3092\u57cb\u3081\u308b\u306e\u304c <code>QueryProgram<trow ...=\"\"\/><\/code> \u3067\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"776:1-810:3\" wp_automatic_readability=\"10.5\">\n<div class=\"highlight\" wp_automatic_readability=\"16\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">static<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">QueryProgram<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TPipeline<\/span><span class=\"p\">,<\/span> <span class=\"n\">TRuntimeResult<\/span><span class=\"p\">,<\/span> <span class=\"n\">TPublicResult<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"k\">where<\/span> <span class=\"n\">TPipeline<\/span> <span class=\"p\">:<\/span> <span class=\"n\">IQueryNode<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">,<\/span> <span class=\"n\">TRuntimeResult<\/span><span class=\"p\">,<\/span> <span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"n\">IReadOnlyList<\/span><span class=\"p\"><span class=\"n\">TPublicResult<\/span><span class=\"p\">&gt;<\/span> <span class=\"nf\">Execute<\/span><span class=\"p\">(<\/span><span class=\"n\">ReadOnlySpan<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">rows<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"kt\">var<\/span> <span class=\"n\">runtime<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">QueryRuntime<\/span><span class=\"p\"><span class=\"n\">TRuntimeResult<\/span><span class=\"p\">&gt;(<\/span><span class=\"n\">rows<\/span><span class=\"p\">.<\/span><span class=\"n\">Length<\/span><span class=\"p\">);<\/span>\n        <span class=\"n\">TPipeline<\/span><span class=\"p\">.<\/span><span class=\"nf\">Run<\/span><span class=\"p\">(<\/span><span class=\"n\">rows<\/span><span class=\"p\">,<\/span> <span class=\"k\">ref<\/span> <span class=\"n\">runtime<\/span><span class=\"p\">);<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"nf\">ConvertResult<\/span><span class=\"p\">(<\/span><span class=\"k\">ref<\/span> <span class=\"n\">runtime<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">private<\/span> <span class=\"k\">static<\/span> <span class=\"n\">IReadOnlyList<\/span><span class=\"p\"><span class=\"n\">TPublicResult<\/span><span class=\"p\">&gt;<\/span> <span class=\"nf\">ConvertResult<\/span><span class=\"p\">(<\/span><span class=\"k\">ref<\/span> <span class=\"n\">QueryRuntime<\/span><span class=\"p\"><span class=\"n\">TRuntimeResult<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">runtime<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">IReadOnlyList<\/span><span class=\"p\"><span class=\"n\">TRuntimeResult<\/span><span class=\"p\">&gt;)<\/span> <span class=\"p\">==<\/span> <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">IReadOnlyList<\/span><span class=\"p\"><span class=\"n\">TPublicResult<\/span><span class=\"p\">&gt;))<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"k\">return<\/span> <span class=\"p\">(<\/span><span class=\"n\">IReadOnlyList<\/span><span class=\"p\"><span class=\"n\">TPublicResult<\/span><span class=\"p\">&gt;)(<\/span><span class=\"kt\">object<\/span><span class=\"p\">)<\/span><span class=\"n\">runtime<\/span><span class=\"p\">.<\/span><span class=\"n\">Rows<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">IReadOnlyList<\/span><span class=\"p\"><span class=\"n\">TRuntimeResult<\/span><span class=\"p\">&gt;)<\/span> <span class=\"p\">==<\/span> <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">IReadOnlyList<\/span><span class=\"p\"><span class=\"n\">ValueString<\/span><span class=\"p\">&gt;)<\/span>\n              <span class=\"p\">&amp;&amp;<\/span> <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">IReadOnlyList<\/span><span class=\"p\"><span class=\"n\">TPublicResult<\/span><span class=\"p\">&gt;)<\/span> <span class=\"p\">==<\/span> <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">IReadOnlyList<\/span><span class=\"p\"><span class=\"kt\">string<\/span><span class=\"p\">&gt;))<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"k\">return<\/span> <span class=\"p\">(<\/span><span class=\"n\">IReadOnlyList<\/span><span class=\"p\"><span class=\"n\">TPublicResult<\/span><span class=\"p\">&gt;)(<\/span><span class=\"kt\">object<\/span><span class=\"p\">)<\/span><span class=\"n\">runtime<\/span><span class=\"p\">.<\/span><span class=\"nf\">AsStringRows<\/span><span class=\"p\">();<\/span>\n        <span class=\"p\">}<\/span>\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">RuntimeFeature<\/span><span class=\"p\">.<\/span><span class=\"n\">IsDynamicCodeSupported<\/span>\n              <span class=\"p\">&amp;&amp;<\/span> <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">TRuntimeResult<\/span><span class=\"p\">).<\/span><span class=\"n\">IsGenericType<\/span>\n              <span class=\"p\">&amp;&amp;<\/span> <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">TPublicResult<\/span><span class=\"p\">).<\/span><span class=\"n\">IsGenericType<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"k\">return<\/span> <span class=\"n\">runtime<\/span><span class=\"p\">.<\/span><span class=\"n\">AsValueTupleRows<\/span><span class=\"p\"><span class=\"n\">TPublicResult<\/span><span class=\"p\">&gt;();<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">throw<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">InvalidOperationException<\/span><span class=\"p\">(<\/span>\n            <span class=\"s\">$\"Cannot convert query result from '<\/span><span class=\"p\">{<\/span><span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">TRuntimeResult<\/span><span class=\"p\">)}<\/span><span class=\"s\">' to '<\/span><span class=\"p\">{<\/span><span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">TPublicResult<\/span><span class=\"p\">)}<\/span><span class=\"s\">'.\"<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"812:1-812:54\">\u3056\u3063\u304f\u308a\u5206\u3051\u308b\u3068\u3001\u30b1\u30fc\u30b9\u306f 3 \u3064\u3067\u3059\u3002<\/p>\n<ol data-sourcepos=\"814:1-820:0\">\n<li data-sourcepos=\"814:1-815:39\">\n<strong>\u5b9f\u884c\u6642\u306e\u7d50\u679c\u578b\u3068\u516c\u958b\u578b\u304c\u540c\u3058<\/strong><br \/>\u2192 \u305d\u306e\u307e\u307e <code>Rows<\/code> \u3092\u8fd4\u3059\u3002<\/li>\n<li data-sourcepos=\"816:1-817:100\">\n<strong>\u5b9f\u884c\u6642\u304c <code>ValueString<\/code> \u3067\u3001\u516c\u958b\u578b\u304c <code>string<\/code><\/strong><br \/>\u2192 <code>AsStringRows<\/code> \u3067\u30e9\u30c3\u30d7\u3057\u3001<code>ValueString[]<\/code> \u3092 <code>string?<\/code> \u306b\u6697\u9ed9\u5909\u63db\u3057\u3066\u8fd4\u3059\u3002<\/li>\n<li data-sourcepos=\"818:1-820:0\">\n<strong>\u3069\u3061\u3089\u3082 <code>ValueTuple<\/code> \u3067\u3001\u5f62\u304c\u5bfe\u5fdc\u3057\u3066\u3044\u308b<\/strong><br \/>\u2192 <code>AsValueTupleRows<tpublicresult>()<\/tpublicresult><\/code> \u3067\u5024\u30bf\u30d7\u30eb\u540c\u58eb\u3092\u30b3\u30d4\u30fc\u3059\u308b\u3002<\/li>\n<\/ol>\n<h2 data-sourcepos=\"821:1-821:72\">\n<span id=\"51-valuetupleconverthelper\u52d5\u7684-il-\u3067\u30d5\u30a3\u30fc\u30eb\u30c9\u30b3\u30d4\u30fc\" class=\"fragment\"\/><a target=\"_blank\" href=\"#51-valuetupleconverthelper%E5%8B%95%E7%9A%84-il-%E3%81%A7%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%82%B3%E3%83%94%E3%83%BC\"><i class=\"fa fa-link\"\/><\/a>5.1 <code>ValueTupleConvertHelper<\/code>\uff1a\u52d5\u7684 IL \u3067\u30d5\u30a3\u30fc\u30eb\u30c9\u30b3\u30d4\u30fc<\/h2>\n<p data-sourcepos=\"823:1-823:63\"><code>ValueTupleConvertHelper<tpublicresult truntimeresult=\"\"\/><\/code> \u306f\u3001<\/p>\n<ul data-sourcepos=\"825:1-828:0\">\n<li data-sourcepos=\"825:1-825:89\">\u5b9f\u884c\u6642\u306e\u5024\u30bf\u30d7\u30eb\u304b\u3089\u516c\u958b\u7528\u306e\u5024\u30bf\u30d7\u30eb\u3078\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u30b3\u30d4\u30fc\u3057<\/li>\n<li data-sourcepos=\"826:1-826:66\">\u5fc5\u8981\u306b\u5fdc\u3058\u3066 <code>string<\/code> \u3068 <code>ValueString<\/code> \u3092\u76f8\u4e92\u5909\u63db\u3057<\/li>\n<li data-sourcepos=\"827:1-828:0\">\u30cd\u30b9\u30c8\u3057\u305f <code>Rest<\/code> \u30d5\u30a3\u30fc\u30eb\u30c9\u3082\u518d\u5e30\u7684\u306b\u51e6\u7406\u3059\u308b<\/li>\n<\/ul>\n<p data-sourcepos=\"829:1-829:30\">\u3068\u3044\u3046\u4ed5\u4e8b\u3092\u3057\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"831:1-831:90\">\u5185\u90e8\u7684\u306b\u306f <code>DynamicMethod<\/code> \u3092\u4f7f\u3063\u3066\u3001\u578b\u521d\u671f\u5316\u6642\u306b IL \u3092\u751f\u6210\u3057\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"833:1-858:3\" wp_automatic_readability=\"10\">\n<div class=\"highlight\" wp_automatic_readability=\"15\">\n<pre><code><span class=\"k\">internal<\/span> <span class=\"k\">static<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">ValueTupleConvertHelper<\/span><span class=\"p\"><span class=\"n\">TPublicResult<\/span><span class=\"p\">,<\/span> <span class=\"n\">TRuntimeResult<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">private<\/span> <span class=\"k\">delegate<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">CopyDelegate<\/span><span class=\"p\">(<\/span><span class=\"k\">ref<\/span> <span class=\"n\">TPublicResult<\/span> <span class=\"n\">dest<\/span><span class=\"p\">,<\/span> <span class=\"k\">ref<\/span> <span class=\"k\">readonly<\/span> <span class=\"n\">TRuntimeResult<\/span> <span class=\"n\">source<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"k\">private<\/span> <span class=\"k\">static<\/span> <span class=\"k\">readonly<\/span> <span class=\"n\">CopyDelegate<\/span> <span class=\"n\">_helper<\/span> <span class=\"p\">=<\/span> <span class=\"k\">default<\/span><span class=\"p\">!;<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">Copy<\/span><span class=\"p\">(<\/span><span class=\"k\">ref<\/span> <span class=\"n\">TPublicResult<\/span> <span class=\"n\">dest<\/span><span class=\"p\">,<\/span> <span class=\"k\">ref<\/span> <span class=\"k\">readonly<\/span> <span class=\"n\">TRuntimeResult<\/span> <span class=\"n\">source<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">TPublicResult<\/span><span class=\"p\">)<\/span> <span class=\"p\">==<\/span> <span class=\"k\">typeof<\/span><span class=\"p\">(<\/span><span class=\"n\">TRuntimeResult<\/span><span class=\"p\">))<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"n\">dest<\/span> <span class=\"p\">=<\/span> <span class=\"n\">Unsafe<\/span><span class=\"p\">.<\/span><span class=\"n\">As<\/span><span class=\"p\"><span class=\"n\">TRuntimeResult<\/span><span class=\"p\">,<\/span> <span class=\"n\">TPublicResult<\/span><span class=\"p\">&gt;(<\/span><span class=\"k\">ref<\/span> <span class=\"n\">Unsafe<\/span><span class=\"p\">.<\/span><span class=\"nf\">AsRef<\/span><span class=\"p\">(<\/span><span class=\"k\">in<\/span> <span class=\"n\">source<\/span><span class=\"p\">));<\/span>\n        <span class=\"p\">}<\/span>\n        <span class=\"k\">else<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"n\">_helper<\/span><span class=\"p\">.<\/span><span class=\"nf\">Invoke<\/span><span class=\"p\">(<\/span><span class=\"k\">ref<\/span> <span class=\"n\">dest<\/span><span class=\"p\">,<\/span> <span class=\"k\">in<\/span> <span class=\"n\">source<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">static<\/span> <span class=\"nf\">ValueTupleConvertHelper<\/span><span class=\"p\">()<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"c1\">\/\/ DynamicMethod \u3068 IL \u3092\u751f\u6210\u3057\u3066\u3001<\/span>\n        <span class=\"c1\">\/\/ Item1\u301cItem7 \u3068 Rest \u3092\u30b3\u30d4\u30fc\u3059\u308b\u30b3\u30fc\u30c9\u3092\u7d44\u307f\u7acb\u3066\u308b\u3002<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"860:1-860:39\">\u3053\u308c\u306e\u304a\u304b\u3052\u3067\u3001\u5b9f\u884c\u6642\u306b\u306f<\/p>\n<ul data-sourcepos=\"862:1-864:0\">\n<li data-sourcepos=\"862:1-862:59\">\u5185\u90e8\u306e\u30bf\u30d7\u30eb <code>(ValueString, int, ValueString, \u2026)<\/code>\n<\/li>\n<li data-sourcepos=\"863:1-864:0\">\u516c\u958b\u7528\u30bf\u30d7\u30eb <code>(string, int, string, \u2026)<\/code>\n<\/li>\n<\/ul>\n<p data-sourcepos=\"865:1-865:78\">\u306e\u3042\u3044\u3060\u3092\u3001\u4f59\u8a08\u306a\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u306a\u304f\u30b3\u30d4\u30fc\u3067\u304d\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"867:1-867:442\">\u3053\u3053\u3067\u306f <code>DynamicMethod<\/code> \u3092\u4f7f\u3063\u305f\u52d5\u7684 IL \u751f\u6210\u3092\u884c\u3063\u3066\u3044\u308b\u305f\u3081\u3001AOT \u306a\u3069\u52d5\u7684\u30b3\u30fc\u30c9\u751f\u6210\u304c\u5236\u9650\u3055\u308c\u308b\u74b0\u5883\u3067\u306f\u5229\u7528\u3067\u304d\u307e\u305b\u3093\u3002TypedSql \u5074\u3067\u306f\u5b9f\u884c\u74b0\u5883\u306e\u6a5f\u80fd\u3092\u78ba\u8a8d\u3057\u3001\u52d5\u7684\u30b3\u30fc\u30c9\u304c\u4f7f\u3048\u308b\u5834\u5408\u3060\u3051\u3053\u306e\u7d4c\u8def\u3092\u6709\u52b9\u306b\u3057\u3001\u305d\u308c\u4ee5\u5916\u306e\u74b0\u5883\u3067\u306f\u300c\u5b9f\u884c\u6642\u7d50\u679c\u578b\u3068\u516c\u958b\u7d50\u679c\u578b\u3092\u4e00\u81f4\u3055\u305b\u308b\u300d\u65b9\u91dd\u306b\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"872:1-872:84\">\u30e6\u30fc\u30b6\u30fc\u304b\u3089\u898b\u305f\u30a8\u30f3\u30c8\u30ea\u30dd\u30a4\u30f3\u30c8\u306f\u3001\u3068\u3066\u3082\u30b7\u30f3\u30d7\u30eb\u3067\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"874:1-877:3\" wp_automatic_readability=\"6.5\">\n<div class=\"highlight\" wp_automatic_readability=\"8\">\n<pre><code><span class=\"kt\">var<\/span> <span class=\"n\">compiled<\/span> <span class=\"p\">=<\/span> <span class=\"n\">QueryEngine<\/span><span class=\"p\">.<\/span><span class=\"n\">Compile<\/span><span class=\"p\"><span class=\"n\">Person<\/span><span class=\"p\">,<\/span> <span class=\"kt\">string<\/span><span class=\"p\">&gt;(<\/span>\n    <span class=\"s\">\"SELECT Name FROM $ WHERE City != 'Seattle'\"<\/span><span class=\"p\">);<\/span>\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"879:1-879:68\">\u5185\u90e8\u3067 <code>Compile<trow tresult=\"\"\/><\/code> \u306f\u6b21\u306e\u3088\u3046\u306b\u52d5\u304d\u307e\u3059\u3002<\/p>\n<ol data-sourcepos=\"881:1-891:0\">\n<li data-sourcepos=\"881:1-881:66\">SQL \u3092\u30d1\u30fc\u30b9\u3057\u3066 <code>ParsedQuery<\/code>\uff08\u69cb\u6587\u6728\uff09\u3092\u4f5c\u308b\u3002<\/li>\n<li data-sourcepos=\"882:1-886:21\">SQL \u30b3\u30f3\u30d1\u30a4\u30e9\u3092\u547c\u3073\u51fa\u3057\u3066\u3001\n<ul data-sourcepos=\"883:4-886:21\">\n<li data-sourcepos=\"883:4-883:38\">\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u578b <code>TPipeline<\/code>\n<\/li>\n<li data-sourcepos=\"884:4-884:43\">\u5b9f\u884c\u6642\u306e\u7d50\u679c\u578b <code>TRuntimeResult<\/code>\n<\/li>\n<li data-sourcepos=\"885:4-886:21\">\u516c\u958b\u3059\u308b\u7d50\u679c\u578b <code>TPublicResult<\/code><br \/>\u3092\u53d7\u3051\u53d6\u308b\u3002<\/li>\n<\/ul>\n<\/li>\n<li data-sourcepos=\"887:1-887:99\">\n<code>TPublicResult<\/code> \u304c\u30e6\u30fc\u30b6\u30fc\u306e\u6307\u5b9a\u3057\u305f <code>TResult<\/code> \u3068\u4e00\u81f4\u3059\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/li>\n<li data-sourcepos=\"888:1-888:87\">\n<code>QueryProgram<trow tpipeline=\"\" truntimeresult=\"\" tpublicresult=\"\"\/><\/code> \u578b\u3092\u69cb\u7bc9\u3059\u308b\u3002<\/li>\n<li data-sourcepos=\"889:1-889:70\">\u305d\u306e\u9759\u7684\u30e1\u30bd\u30c3\u30c9 <code>Execute(ReadOnlySpan<trow>)<\/trow><\/code> \u3092\u63a2\u3059\u3002<\/li>\n<li data-sourcepos=\"890:1-891:0\">\u30c7\u30ea\u30b2\u30fc\u30c8\u306b\u5909\u63db\u3057\u3066\u3001<code>CompiledQuery<trow tresult=\"\"\/><\/code> \u3068\u3057\u3066\u30e9\u30c3\u30d7\u3057\u3066\u8fd4\u3059\u3002<\/li>\n<\/ol>\n<p data-sourcepos=\"892:1-892:106\"><code>CompiledQuery<trow tresult=\"\"\/><\/code> \u306f\u3001\u5185\u90e8\u7684\u306b\u306f\u6b21\u306e\u3088\u3046\u306a\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u6301\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"894:1-897:3\" wp_automatic_readability=\"7.5\">\n<div class=\"highlight\" wp_automatic_readability=\"10\">\n<pre><code><span class=\"k\">private<\/span> <span class=\"k\">readonly<\/span> <span class=\"n\">Func<\/span><span class=\"p\"><span class=\"n\">ReadOnlySpan<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;,<\/span> <span class=\"n\">IReadOnlyList<\/span><span class=\"p\"><span class=\"n\">TResult<\/span><span class=\"p\">&gt;&gt;<\/span> <span class=\"n\">_entryPoint<\/span>\n    <span class=\"p\">=<\/span> <span class=\"n\">executeMethod<\/span><span class=\"p\">.<\/span><span class=\"n\">CreateDelegate<\/span><span class=\"p\"><span class=\"n\">Func<\/span><span class=\"p\"><span class=\"n\">ReadOnlySpan<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;,<\/span> <span class=\"n\">IReadOnlyList<\/span><span class=\"p\"><span class=\"n\">TResult<\/span><span class=\"p\">&gt;&gt;&gt;();<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"899:1-899:53\">\u305d\u3057\u3066\u3001\u516c\u958b API \u306f\u305f\u3060\u3053\u308c\u3060\u3051\u3067\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"901:1-904:3\" wp_automatic_readability=\"6\">\n<div class=\"highlight\" wp_automatic_readability=\"7\">\n<pre><code><span class=\"k\">public<\/span> <span class=\"n\">IReadOnlyList<\/span><span class=\"p\"><span class=\"n\">TResult<\/span><span class=\"p\">&gt;<\/span> <span class=\"nf\">Execute<\/span><span class=\"p\">(<\/span><span class=\"n\">ReadOnlySpan<\/span><span class=\"p\"><span class=\"n\">TRow<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">rows<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">=&gt;<\/span> <span class=\"nf\">_entryPoint<\/span><span class=\"p\">(<\/span><span class=\"n\">rows<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"906:1-907:111\">.NET 10 \u3067\u306f\u3001\u30c7\u30ea\u30b2\u30fc\u30c8\u306b\u5bfe\u3059\u308b\u30a8\u30b9\u30b1\u30fc\u30d7\u89e3\u6790\u3084\u30c7\u30d0\u30fc\u30c1\u30e3\u30e9\u30a4\u30bc\u30fc\u30b7\u30e7\u30f3\uff08\u4eee\u60f3\u547c\u3073\u51fa\u3057\u306e\u9664\u53bb\uff09\u3001\u30a4\u30f3\u30e9\u30a4\u30f3\u5c55\u958b\u304c\u304b\u306a\u308a\u5f37\u5316\u3055\u308c\u3066\u3044\u307e\u3059\u3002<br \/>\u305d\u306e\u305f\u3081\u3001\u3053\u306e\u8584\u3044\u30e9\u30c3\u30d1\u30fc\u5c64\u306f\u307b\u307c\u30bc\u30ed\u306b\u8fd1\u3044\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u3057\u304b\u6301\u3061\u307e\u305b\u3093\u3002<\/p>\n<p data-sourcepos=\"909:1-909:100\">JIT \u304b\u3089\u898b\u308b\u3068\u3001<code>Compile<\/code> \u304c\u4e00\u5ea6\u8d70\u3063\u3066\u3057\u307e\u3048\u3070\u3001\u305d\u306e\u5f8c\u306e <code>Execute<\/code> \u306f\u305f\u3060\u306e<\/p>\n<ul data-sourcepos=\"911:1-913:0\">\n<li data-sourcepos=\"911:1-911:65\">\u9589\u3058\u305f\u30b8\u30a7\u30cd\u30ea\u30c3\u30af\u30e1\u30bd\u30c3\u30c9\u3078\u306e\u9759\u7684\u547c\u3073\u51fa\u3057<\/li>\n<li data-sourcepos=\"912:1-913:0\">\u305d\u306e\u4e2d\u3067 <code>struct<\/code> \u30ce\u30fc\u30c9\u30fb\u30d5\u30a3\u30eb\u30bf\u30fb\u6295\u5f71\u306e\u9759\u7684\u30e1\u30bd\u30c3\u30c9\u304c\u9023\u9396\u3057\u3066\u3044\u308b\u3060\u3051<\/li>\n<\/ul>\n<p data-sourcepos=\"914:1-914:33\">\u3068\u3044\u3046\u69cb\u9020\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"919:1-919:78\">TypedSql \u306e\u5178\u578b\u7684\u306a\u4f7f\u3044\u65b9\u306f\u3001\u6b21\u306e\u3088\u3046\u306a\u6d41\u308c\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<ol data-sourcepos=\"921:1-941:0\" wp_automatic_readability=\"0.5\">\n<li data-sourcepos=\"921:1-937:0\">\n<p data-sourcepos=\"921:4-921:27\">\u884c\u578b\u3092\u5b9a\u7fa9\u3059\u308b\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"923:4-936:6\" wp_automatic_readability=\"11.5\">\n<div class=\"highlight\" wp_automatic_readability=\"18\">\n<pre><code><span class=\"k\">public<\/span> <span class=\"k\">sealed<\/span> <span class=\"k\">record<\/span> <span class=\"nc\">Person<\/span><span class=\"p\">(<\/span>\n    <span class=\"kt\">int<\/span> <span class=\"n\">Id<\/span><span class=\"p\">,<\/span>\n    <span class=\"kt\">string<\/span> <span class=\"n\">Name<\/span><span class=\"p\">,<\/span>\n    <span class=\"kt\">int<\/span> <span class=\"n\">Age<\/span><span class=\"p\">,<\/span>\n    <span class=\"kt\">string<\/span> <span class=\"n\">City<\/span><span class=\"p\">,<\/span>\n    <span class=\"kt\">float<\/span> <span class=\"n\">Salary<\/span><span class=\"p\">,<\/span>\n    <span class=\"kt\">string<\/span> <span class=\"n\">Department<\/span><span class=\"p\">,<\/span>\n    <span class=\"kt\">bool<\/span> <span class=\"n\">IsManager<\/span><span class=\"p\">,<\/span>\n    <span class=\"kt\">int<\/span> <span class=\"n\">YearsAtCompany<\/span><span class=\"p\">,<\/span>\n    <span class=\"kt\">string<\/span> <span class=\"n\">Country<\/span><span class=\"p\">,<\/span>\n    <span class=\"kt\">string<\/span><span class=\"p\">?<\/span> <span class=\"n\">Team<\/span><span class=\"p\">,<\/span>\n    <span class=\"kt\">string<\/span> <span class=\"n\">Level<\/span><span class=\"p\">);<\/span>\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/li>\n<li data-sourcepos=\"938:1-938:84\" wp_automatic_readability=\"-1\">\n<p data-sourcepos=\"938:4-938:84\">\u30af\u30a8\u30ea\u3067\u4f7f\u3044\u305f\u3044\u5217\u3054\u3068\u306b <code>IColumn<person tvalue=\"\"\/><\/code> \u3092\u5b9f\u88c5\u3059\u308b\u3002<\/p>\n<\/li>\n<li data-sourcepos=\"939:1-939:51\" wp_automatic_readability=\"-1\">\n<p data-sourcepos=\"939:4-939:51\">\u305d\u308c\u3089\u3092\u30b9\u30ad\u30fc\u30de\u3068\u3057\u3066\u767b\u9332\u3059\u308b\u3002<\/p>\n<\/li>\n<li data-sourcepos=\"940:1-941:0\" wp_automatic_readability=\"0\">\n<p data-sourcepos=\"940:4-940:112\">SQL \u3063\u307d\u3044\u6587\u5b57\u5217\u3067\u30af\u30a8\u30ea\u3092\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u3001\u30e1\u30e2\u30ea\u4e0a\u306e\u30c7\u30fc\u30bf\u306b\u5bfe\u3057\u3066\u5b9f\u884c\u3059\u308b\u3002<\/p>\n<\/li>\n<\/ol>\n<p data-sourcepos=\"942:1-942:48\">\u4f8b\u3048\u3070\u3001\u3053\u3093\u306a\u30af\u30a8\u30ea\u3092\u66f8\u3051\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"944:1-956:3\" wp_automatic_readability=\"8\">\n<div class=\"highlight\" wp_automatic_readability=\"11\">\n<pre><code><span class=\"c1\">\/\/ \u4e00\u5ea6\u3060\u3051\u30b3\u30f3\u30d1\u30a4\u30eb<\/span>\n<span class=\"kt\">var<\/span> <span class=\"n\">wellPaidManagers<\/span> <span class=\"p\">=<\/span> <span class=\"n\">QueryEngine<\/span><span class=\"p\">.<\/span><span class=\"n\">Compile<\/span><span class=\"p\"><span class=\"n\">Person<\/span><span class=\"p\">,<\/span> <span class=\"n\">Person<\/span><span class=\"p\">&gt;(<\/span>\n    <span class=\"s\">\"SELECT * FROM $ \"<\/span> <span class=\"p\">+<\/span>\n    <span class=\"s\">\"WHERE Department=\"Engineering\" \"<\/span> <span class=\"p\">+<\/span>\n    <span class=\"s\">\"AND IsManager = true \"<\/span> <span class=\"p\">+<\/span>\n    <span class=\"s\">\"AND YearsAtCompany &gt;= 5 \"<\/span> <span class=\"p\">+<\/span>\n    <span class=\"s\">\"AND Salary &gt; 170000 \"<\/span> <span class=\"p\">+<\/span>\n    <span class=\"s\">\"AND Country = 'US'\"<\/span><span class=\"p\">);<\/span>\n\n<span class=\"c1\">\/\/ \u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3092\u5909\u3048\u3066\u4f55\u5ea6\u3067\u3082\u5b9f\u884c<\/span>\n<span class=\"kt\">var<\/span> <span class=\"n\">result<\/span> <span class=\"p\">=<\/span> <span class=\"n\">wellPaidManagers<\/span><span class=\"p\">.<\/span><span class=\"nf\">Execute<\/span><span class=\"p\">(<\/span><span class=\"n\">allPeople<\/span><span class=\"p\">.<\/span><span class=\"nf\">AsSpan<\/span><span class=\"p\">());<\/span>\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"958:1-958:105\">\u3042\u308b\u3044\u306f\u3001\u8907\u6570\u306e\u5217\u3060\u3051\u629c\u304d\u51fa\u3057\u3066\u30bf\u30d7\u30eb\u3067\u8fd4\u3059\u30af\u30a8\u30ea\u3082\u3001\u7d20\u76f4\u306b\u66f8\u3051\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"960:1-969:3\" wp_automatic_readability=\"11\">\n<div class=\"highlight\" wp_automatic_readability=\"17\">\n<pre><code><span class=\"kt\">var<\/span> <span class=\"n\">seniorTitles<\/span> <span class=\"p\">=<\/span> <span class=\"n\">QueryEngine<\/span><span class=\"p\">.<\/span><span class=\"n\">Compile<\/span><span class=\"p\"><span class=\"n\">Person<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"kt\">string<\/span> <span class=\"n\">Name<\/span><span class=\"p\">,<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">City<\/span><span class=\"p\">,<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Level<\/span><span class=\"p\">)&gt;(<\/span>\n    <span class=\"s\">\"SELECT Name, City, Level FROM $ \"<\/span> <span class=\"p\">+<\/span>\n    <span class=\"s\">\"WHERE Level=\"Senior\" AND City = 'Seattle'\"<\/span><span class=\"p\">);<\/span>\n\n<span class=\"k\">foreach<\/span> <span class=\"p\">(<\/span><span class=\"kt\">var<\/span> <span class=\"p\">(<\/span><span class=\"n\">name<\/span><span class=\"p\">,<\/span> <span class=\"n\">city<\/span><span class=\"p\">,<\/span> <span class=\"n\">level<\/span><span class=\"p\">)<\/span> <span class=\"k\">in<\/span> <span class=\"n\">seniorTitles<\/span><span class=\"p\">.<\/span><span class=\"nf\">Execute<\/span><span class=\"p\">(<\/span><span class=\"n\">allPeople<\/span><span class=\"p\">.<\/span><span class=\"nf\">AsSpan<\/span><span class=\"p\">()))<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"n\">Console<\/span><span class=\"p\">.<\/span><span class=\"nf\">WriteLine<\/span><span class=\"p\">(<\/span><span class=\"s\">$\"<\/span><span class=\"p\">{<\/span><span class=\"n\">name<\/span><span class=\"p\">}<\/span><span class=\"s\"> in <\/span><span class=\"p\">{<\/span><span class=\"n\">city<\/span><span class=\"p\">}<\/span><span class=\"s\"> [<\/span><span class=\"p\">{<\/span><span class=\"n\">level<\/span><span class=\"p\">}<\/span><span class=\"s\">]\"<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"971:1-971:18\">\u5927\u4e8b\u306a\u306e\u306f\u3001<\/p>\n<ul data-sourcepos=\"973:1-976:0\">\n<li data-sourcepos=\"973:1-973:11\">\u30d1\u30fc\u30b9<\/li>\n<li data-sourcepos=\"974:1-974:23\">\u30ea\u30c6\u30e9\u30eb\u306e\u578b\u5316<\/li>\n<li data-sourcepos=\"975:1-976:0\">\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u578b\u306e\u7d44\u307f\u7acb\u3066<\/li>\n<\/ul>\n<p data-sourcepos=\"977:1-977:265\">\u3068\u3044\u3063\u305f\u300c\u91cd\u3044\u51e6\u7406\u300d\u306f\u3001<strong>\u30af\u30a8\u30ea\u3092\u30b3\u30f3\u30d1\u30a4\u30eb\u3059\u308b\u3068\u304d\u306b 1 \u56de\u3060\u3051<\/strong>\u884c\u308f\u308c\u308b\u3001\u3068\u3044\u3046\u3053\u3068\u3067\u3059\u3002\u305d\u306e\u5f8c\u306e <code>.Execute<\/code> \u306f\u3001\u5c02\u7528\u306b\u6700\u9069\u5316\u3055\u308c\u305f\u9759\u7684\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306b\u30c7\u30fc\u30bf\u3092\u6d41\u3057\u8fbc\u3080\u3060\u3051\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"982:1-982:84\">TypedSql \u3092\u4f5c\u308b\u3046\u3048\u3067\u4e00\u756a\u6c17\u306b\u306a\u3063\u3066\u3044\u305f\u306e\u306f\u3001\u6b21\u306e\u70b9\u3067\u3057\u305f\u3002<\/p>\n<blockquote data-sourcepos=\"984:1-984:102\" wp_automatic_readability=\"5\">\n<p data-sourcepos=\"984:3-984:102\"><strong>\u578b\u30b7\u30b9\u30c6\u30e0\u306b\u5168\u632f\u308a\u3057\u305f\u30af\u30a8\u30ea\u30a8\u30f3\u30b8\u30f3\u306f\u3001\u5b9f\u969b\u3069\u308c\u304f\u3089\u3044\u901f\u3044\u306e\u304b\uff1f<\/strong><\/p>\n<\/blockquote>\n<p data-sourcepos=\"986:1-986:120\">\u300c\u304a\u3082\u3057\u308d\u3044\u304b\u3089\u3084\u3063\u305f\u300d\u3067\u7d42\u308f\u3089\u305b\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u304d\u3061\u3093\u3068\u6570\u5b57\u3092\u898b\u305f\u304b\u3063\u305f\u306e\u3067\u3059\u3002<\/p>\n<p data-sourcepos=\"988:1-988:81\">\u305d\u3053\u3067\u3001\u6b21\u306e 3 \u3064\u3092\u540c\u3058\u6761\u4ef6\u3067\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<ul data-sourcepos=\"990:1-993:0\">\n<li data-sourcepos=\"990:1-990:23\">TypedSql \u306e\u30af\u30a8\u30ea<\/li>\n<li data-sourcepos=\"991:1-991:26\">\u540c\u7b49\u306e LINQ \u30af\u30a8\u30ea<\/li>\n<li data-sourcepos=\"992:1-993:0\">\u624b\u66f8\u304d\u306e <code>foreach<\/code> \u30eb\u30fc\u30d7<\/li>\n<\/ul>\n<p data-sourcepos=\"994:1-994:42\">\u30ef\u30fc\u30af\u30ed\u30fc\u30c9\u306f\u3068\u3066\u3082\u7d20\u76f4\u3067\u3001<\/p>\n<ul data-sourcepos=\"996:1-998:0\">\n<li data-sourcepos=\"996:1-996:55\">\n<code>City == \"Seattle\"<\/code> \u306e\u884c\u3060\u3051\u3092\u30d5\u30a3\u30eb\u30bf\u3057\u3066<\/li>\n<li data-sourcepos=\"997:1-998:0\">\u305d\u306e <code>Id<\/code> \u3092\u8fd4\u3059<\/li>\n<\/ul>\n<p data-sourcepos=\"999:1-999:24\">\u3068\u3044\u3046\u3082\u306e\u3067\u3059\u3002<\/p>\n<p data-sourcepos=\"1001:1-1001:111\">TypedSql \u304c\u30b3\u30f3\u30d1\u30a4\u30eb\u3059\u308b\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306f\u3001\u3056\u3063\u304f\u308a\u8a00\u3046\u3068\u3053\u3046\u3044\u3046\u5f62\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"1003:1-1022:3\" wp_automatic_readability=\"15\">\n<div class=\"highlight\" wp_automatic_readability=\"25\">\n<pre><code><span class=\"n\">QueryProgram<\/span><span class=\"p\">\n    <span class=\"n\">Person<\/span><span class=\"p\">,<\/span>\n    <span class=\"n\">WhereSelect<\/span><span class=\"p\">\n        <span class=\"n\">Person<\/span><span class=\"p\">,<\/span>\n        <span class=\"n\">EqualsFilter<\/span><span class=\"p\">\n            <span class=\"n\">Person<\/span><span class=\"p\">,<\/span>\n            <span class=\"n\">ValueStringColumn<\/span><span class=\"p\"><span class=\"n\">PersonCityColumn<\/span><span class=\"p\">,<\/span> <span class=\"n\">Person<\/span><span class=\"p\">&gt;,<\/span>\n            <span class=\"err\">'<\/span><span class=\"n\">Seattle<\/span><span class=\"err\">'<\/span><span class=\"p\">,<\/span>\n            <span class=\"n\">ValueString<\/span>\n        <span class=\"p\">&gt;,<\/span>\n        <span class=\"n\">ColumnProjection<\/span><span class=\"p\"><span class=\"n\">PersonIdColumn<\/span><span class=\"p\">,<\/span> <span class=\"n\">Person<\/span><span class=\"p\">,<\/span> <span class=\"n\">Int32<\/span><span class=\"p\">&gt;,<\/span>\n        <span class=\"n\">Stop<\/span><span class=\"p\"><span class=\"n\">Int32<\/span><span class=\"p\">,<\/span> <span class=\"n\">Person<\/span><span class=\"p\">&gt;,<\/span>\n        <span class=\"n\">Int32<\/span><span class=\"p\">,<\/span>\n        <span class=\"n\">Int32<\/span><span class=\"p\">,<\/span>\n        <span class=\"n\">Person<\/span><span class=\"p\">&gt;,<\/span>\n    <span class=\"n\">Int32<\/span><span class=\"p\">,<\/span>\n    <span class=\"n\">Int32<\/span>\n<span class=\"p\">&gt;<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"1024:1-1024:364\">\u3053\u3053\u304b\u3089\u5148\u306f\u3001RyuJIT \u304c\u3053\u306e\u62bd\u8c61\u3092\u3069\u3046\u300c\u306f\u304e\u53d6\u3063\u3066\u300d\u3044\u304f\u304b\u306e\u8a71\u3067\u3059\u3002TypedSql \u304c\u751f\u6210\u3057\u305f\u3053\u306e\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306f\u3001JIT \u306e\u76ee\u306b\u306f\u305f\u3060\u306e\u9759\u7684\u306a\u30e1\u30bd\u30c3\u30c9\u547c\u3073\u51fa\u3057\u306e\u30b0\u30e9\u30d5\u3068\u3057\u3066\u898b\u3048\u307e\u3059\u3002\u305d\u3053\u304b\u3089\u3069\u3053\u307e\u3067\u6700\u9069\u5316\u3055\u308c\u308b\u306e\u304b\u3092\u3001\u5b9f\u969b\u306b\u51fa\u3066\u304d\u305f asm \u3092\u773a\u3081\u306a\u304c\u3089\u898b\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"1026:1-1026:92\">\u3053\u3053\u3067\u3001\u5b9f\u969b\u306b RyuJIT \u304c\u5410\u304d\u51fa\u3057\u305f\u6a5f\u68b0\u8a9e\u3092\u5c11\u3057\u8997\u3044\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"nasm\" data-sourcepos=\"1028:1-1131:3\" wp_automatic_readability=\"33.5\">\n<div class=\"highlight\" wp_automatic_readability=\"62\">\n<pre><code><span class=\"nl\">G_M000_IG01:<\/span>                <span class=\"c1\">; prologue<\/span>\n    <span class=\"nf\">push<\/span>     <span class=\"nv\">r15<\/span>\n    <span class=\"nf\">push<\/span>     <span class=\"nv\">r14<\/span>\n    <span class=\"nf\">push<\/span>     <span class=\"nb\">rdi<\/span>\n    <span class=\"nf\">push<\/span>     <span class=\"nb\">rsi<\/span>\n    <span class=\"nf\">push<\/span>     <span class=\"nb\">rbp<\/span>\n    <span class=\"nf\">push<\/span>     <span class=\"nb\">rbx<\/span>\n    <span class=\"nf\">sub<\/span>      <span class=\"nb\">rsp<\/span><span class=\"p\">,<\/span> <span class=\"mi\">40<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">rbx<\/span><span class=\"p\">,<\/span> <span class=\"nb\">rcx<\/span>\n\n<span class=\"nl\">G_M000_IG02:<\/span>                <span class=\"c1\">; \u7d50\u679c\u914d\u5217\u306e\u5272\u308a\u5f53\u3066<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">esi<\/span><span class=\"p\">,<\/span> <span class=\"kt\">dword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rbx<\/span><span class=\"o\">+<\/span><span class=\"mh\">0x08<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">edx<\/span><span class=\"p\">,<\/span> <span class=\"nb\">esi<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">rcx<\/span><span class=\"p\">,<\/span> <span class=\"mh\">0x7FFE71F29558<\/span>\n    <span class=\"nf\">call<\/span>     <span class=\"nv\">CORINFO_HELP_NEWARR_1_VC<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">rdi<\/span><span class=\"p\">,<\/span> <span class=\"nb\">rax<\/span>\n    <span class=\"nf\">xor<\/span>      <span class=\"nb\">ebp<\/span><span class=\"p\">,<\/span> <span class=\"nb\">ebp<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">rbx<\/span><span class=\"p\">,<\/span> <span class=\"nv\">bword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rbx<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">test<\/span>     <span class=\"nb\">esi<\/span><span class=\"p\">,<\/span> <span class=\"nb\">esi<\/span>\n    <span class=\"nf\">jle<\/span>      <span class=\"nv\">SHORT<\/span> <span class=\"nv\">G_M000_IG06<\/span>\n\n<span class=\"nl\">G_M000_IG03:<\/span>                <span class=\"c1\">; \u30eb\u30fc\u30d7\u5909\u6570\u306e\u521d\u671f\u5316<\/span>\n    <span class=\"nf\">xor<\/span>      <span class=\"nb\">r14d<\/span><span class=\"p\">,<\/span> <span class=\"nb\">r14d<\/span>\n\n<span class=\"nl\">G_M000_IG04:<\/span>                <span class=\"c1\">; \u30eb\u30fc\u30d7\u672c\u4f53<\/span>\n    <span class=\"nf\">lea<\/span>      <span class=\"nv\">r15<\/span><span class=\"p\">,<\/span> <span class=\"nv\">bword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rbx<\/span><span class=\"o\">+<\/span><span class=\"nv\">r14<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">rcx<\/span><span class=\"p\">,<\/span> <span class=\"nv\">gword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nv\">r15<\/span><span class=\"o\">+<\/span><span class=\"mh\">0x08<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">rdx<\/span><span class=\"p\">,<\/span> <span class=\"mh\">0x16EB0400D30<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">rdx<\/span><span class=\"p\">,<\/span> <span class=\"nv\">gword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rdx<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">rdx<\/span><span class=\"p\">,<\/span> <span class=\"nv\">gword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rdx<\/span><span class=\"o\">+<\/span><span class=\"mh\">0x08<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">cmp<\/span>      <span class=\"nb\">rcx<\/span><span class=\"p\">,<\/span> <span class=\"nb\">rdx<\/span>\n    <span class=\"nf\">je<\/span>       <span class=\"nv\">G_M000_IG12<\/span>\n    <span class=\"nf\">test<\/span>     <span class=\"nb\">rcx<\/span><span class=\"p\">,<\/span> <span class=\"nb\">rcx<\/span>\n    <span class=\"nf\">je<\/span>       <span class=\"nv\">SHORT<\/span> <span class=\"nv\">G_M000_IG05<\/span>\n    <span class=\"nf\">test<\/span>     <span class=\"nb\">rdx<\/span><span class=\"p\">,<\/span> <span class=\"nb\">rdx<\/span>\n    <span class=\"nf\">je<\/span>       <span class=\"nv\">SHORT<\/span> <span class=\"nv\">G_M000_IG05<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">r8d<\/span><span class=\"p\">,<\/span> <span class=\"kt\">dword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rcx<\/span><span class=\"o\">+<\/span><span class=\"mh\">0x08<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">cmp<\/span>      <span class=\"nb\">r8d<\/span><span class=\"p\">,<\/span> <span class=\"kt\">dword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rdx<\/span><span class=\"o\">+<\/span><span class=\"mh\">0x08<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">je<\/span>       <span class=\"nv\">SHORT<\/span> <span class=\"nv\">G_M000_IG08<\/span>\n\n<span class=\"nl\">G_M000_IG05:<\/span>                <span class=\"c1\">; \u30eb\u30fc\u30d7\u30ab\u30a6\u30f3\u30bf\u66f4\u65b0<\/span>\n    <span class=\"nf\">add<\/span>      <span class=\"nv\">r14<\/span><span class=\"p\">,<\/span> <span class=\"mi\">72<\/span>\n    <span class=\"nf\">dec<\/span>      <span class=\"nb\">esi<\/span>\n    <span class=\"nf\">jne<\/span>      <span class=\"nv\">SHORT<\/span> <span class=\"nv\">G_M000_IG04<\/span>\n\n<span class=\"nl\">G_M000_IG06:<\/span>                <span class=\"c1\">; \u7d50\u679c\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u751f\u6210<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">rcx<\/span><span class=\"p\">,<\/span> <span class=\"mh\">0x7FFE72227600<\/span>\n    <span class=\"nf\">call<\/span>     <span class=\"nv\">CORINFO_HELP_NEWSFAST<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">rbx<\/span><span class=\"p\">,<\/span> <span class=\"nb\">rax<\/span>\n    <span class=\"nf\">lea<\/span>      <span class=\"nb\">rcx<\/span><span class=\"p\">,<\/span> <span class=\"nv\">bword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rbx<\/span><span class=\"o\">+<\/span><span class=\"mh\">0x08<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">rdx<\/span><span class=\"p\">,<\/span> <span class=\"nb\">rdi<\/span>\n    <span class=\"nf\">call<\/span>     <span class=\"nv\">CORINFO_HELP_ASSIGN_REF<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"kt\">dword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rbx<\/span><span class=\"o\">+<\/span><span class=\"mh\">0x10<\/span><span class=\"p\">],<\/span> <span class=\"nb\">ebp<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">rax<\/span><span class=\"p\">,<\/span> <span class=\"nb\">rbx<\/span>\n\n<span class=\"nl\">G_M000_IG07:<\/span>                <span class=\"c1\">; epilogue<\/span>\n    <span class=\"nf\">add<\/span>      <span class=\"nb\">rsp<\/span><span class=\"p\">,<\/span> <span class=\"mi\">40<\/span>\n    <span class=\"nf\">pop<\/span>      <span class=\"nb\">rbx<\/span>\n    <span class=\"nf\">pop<\/span>      <span class=\"nb\">rbp<\/span>\n    <span class=\"nf\">pop<\/span>      <span class=\"nb\">rsi<\/span>\n    <span class=\"nf\">pop<\/span>      <span class=\"nb\">rdi<\/span>\n    <span class=\"nf\">pop<\/span>      <span class=\"nv\">r14<\/span>\n    <span class=\"nf\">pop<\/span>      <span class=\"nv\">r15<\/span>\n    <span class=\"nf\">ret<\/span>\n\n<span class=\"nl\">G_M000_IG08:<\/span>                <span class=\"c1\">; \u6587\u5b57\u5217\u9577\u306e\u6bd4\u8f03<\/span>\n    <span class=\"nf\">lea<\/span>      <span class=\"nb\">rax<\/span><span class=\"p\">,<\/span> <span class=\"nv\">bword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rcx<\/span><span class=\"o\">+<\/span><span class=\"mh\">0x0C<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">add<\/span>      <span class=\"nb\">rdx<\/span><span class=\"p\">,<\/span> <span class=\"mi\">12<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">ecx<\/span><span class=\"p\">,<\/span> <span class=\"kt\">dword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rcx<\/span><span class=\"o\">+<\/span><span class=\"mh\">0x08<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">add<\/span>      <span class=\"nb\">ecx<\/span><span class=\"p\">,<\/span> <span class=\"nb\">ecx<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">r8d<\/span><span class=\"p\">,<\/span> <span class=\"nb\">ecx<\/span>\n    <span class=\"nf\">cmp<\/span>      <span class=\"nv\">r8<\/span><span class=\"p\">,<\/span> <span class=\"mi\">10<\/span>\n    <span class=\"nf\">je<\/span>       <span class=\"nv\">SHORT<\/span> <span class=\"nv\">G_M000_IG10<\/span>\n\n<span class=\"nl\">G_M000_IG09:<\/span>                <span class=\"c1\">; \u6587\u5b57\u5217\u5185\u5bb9\u306e\u6c4e\u7528\u6bd4\u8f03<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">rcx<\/span><span class=\"p\">,<\/span> <span class=\"nb\">rax<\/span>\n    <span class=\"nf\">call<\/span>     <span class=\"p\">[<\/span><span class=\"nv\">System.SpanHelpers<\/span><span class=\"p\">:<\/span><span class=\"nv\">SequenceEqual<\/span><span class=\"p\">(<\/span><span class=\"nv\">byref<\/span><span class=\"p\">,<\/span><span class=\"nv\">byref<\/span><span class=\"p\">,<\/span><span class=\"nv\">nuint<\/span><span class=\"p\">):<\/span><span class=\"nv\">bool<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">jmp<\/span>      <span class=\"nv\">SHORT<\/span> <span class=\"nv\">G_M000_IG11<\/span>\n\n<span class=\"nl\">G_M000_IG10:<\/span>                <span class=\"c1\">; \u9577\u3055 10 \u5411\u3051\u306e\u9ad8\u901f\u6bd4\u8f03\u30d1\u30b9<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">rcx<\/span><span class=\"p\">,<\/span> <span class=\"kt\">qword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rax<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">rax<\/span><span class=\"p\">,<\/span> <span class=\"kt\">qword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rax<\/span><span class=\"o\">+<\/span><span class=\"mh\">0x02<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nv\">r8<\/span><span class=\"p\">,<\/span> <span class=\"kt\">qword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rdx<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">xor<\/span>      <span class=\"nb\">rcx<\/span><span class=\"p\">,<\/span> <span class=\"nv\">r8<\/span>\n    <span class=\"nf\">xor<\/span>      <span class=\"nb\">rax<\/span><span class=\"p\">,<\/span> <span class=\"kt\">qword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rdx<\/span><span class=\"o\">+<\/span><span class=\"mh\">0x02<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">or<\/span>       <span class=\"nb\">rcx<\/span><span class=\"p\">,<\/span> <span class=\"nb\">rax<\/span>\n    <span class=\"nf\">sete<\/span>     <span class=\"nb\">al<\/span>\n    <span class=\"nf\">movzx<\/span>    <span class=\"nb\">rax<\/span><span class=\"p\">,<\/span> <span class=\"nb\">al<\/span>\n\n<span class=\"nl\">G_M000_IG11:<\/span>                <span class=\"c1\">; \u6bd4\u8f03\u7d50\u679c\u306b\u57fa\u3065\u304f\u5206\u5c90<\/span>\n    <span class=\"nf\">test<\/span>     <span class=\"nb\">eax<\/span><span class=\"p\">,<\/span> <span class=\"nb\">eax<\/span>\n    <span class=\"nf\">je<\/span>       <span class=\"nv\">SHORT<\/span> <span class=\"nv\">G_M000_IG05<\/span>\n\n<span class=\"nl\">G_M000_IG12:<\/span>                <span class=\"c1\">; \u30de\u30c3\u30c1\u3057\u305f Id \u306e\u66f8\u304d\u8fbc\u307f<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">ecx<\/span><span class=\"p\">,<\/span> <span class=\"kt\">dword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nv\">r15<\/span><span class=\"o\">+<\/span><span class=\"mh\">0x30<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">lea<\/span>      <span class=\"nb\">rax<\/span><span class=\"p\">,<\/span> <span class=\"nv\">bword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rdi<\/span><span class=\"o\">+<\/span><span class=\"mh\">0x10<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">lea<\/span>      <span class=\"nb\">edx<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rbp<\/span><span class=\"o\">+<\/span><span class=\"mh\">0x01<\/span><span class=\"p\">]<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">r15d<\/span><span class=\"p\">,<\/span> <span class=\"nb\">edx<\/span>\n    <span class=\"nf\">movsxd<\/span>   <span class=\"nb\">rdx<\/span><span class=\"p\">,<\/span> <span class=\"nb\">ebp<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"kt\">dword<\/span> <span class=\"nv\">ptr<\/span> <span class=\"p\">[<\/span><span class=\"nb\">rax<\/span><span class=\"o\">+<\/span><span class=\"mi\">4<\/span><span class=\"o\">*<\/span><span class=\"nb\">rdx<\/span><span class=\"p\">],<\/span> <span class=\"nb\">ecx<\/span>\n    <span class=\"nf\">mov<\/span>      <span class=\"nb\">ebp<\/span><span class=\"p\">,<\/span> <span class=\"nb\">r15d<\/span>\n    <span class=\"nf\">jmp<\/span>      <span class=\"nv\">G_M000_IG05<\/span>\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"1133:1-1133:51\">\u3044\u304f\u3064\u304b\u9762\u767d\u3044\u30dd\u30a4\u30f3\u30c8\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<ul data-sourcepos=\"1135:1-1138:0\">\n<li data-sourcepos=\"1135:1-1135:534\">\n<code>G_M000_IG08<\/code> \u306e <code>cmp r8, 10<\/code> \u306b\u6ce8\u76ee\u3059\u308b\u3068\u3001\u3053\u3053\u3067\u4f7f\u308f\u308c\u3066\u3044\u308b <code>10<\/code> \u306f\u305d\u306e\u307e\u307e\u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb <code>'Seattle'<\/code> \u306e\u9577\u3055\u3067\u3059\u3002JIT \u306f\u30ea\u30c6\u30e9\u30eb\u306e\u9577\u3055\u3092\u5373\u5024\u3068\u3057\u3066\u30b3\u30fc\u30c9\u306b\u713c\u304d\u4ed8\u3051\u3066\u3044\u3066\u3001\u3055\u3089\u306b\u9577\u3055\u304c\u4e00\u81f4\u3057\u305f\u3068\u304d\u3060\u3051 <code>G_M000_IG10<\/code> \u3068\u3044\u3046\u300c\u9577\u3055 10 \u306e\u6587\u5b57\u5217\u5c02\u7528\u300d\u306e\u9ad8\u901f\u6bd4\u8f03\u30d1\u30b9\u306b\u98db\u3076\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u3064\u307e\u308a\u3001\u5358\u306a\u308b\u300c\u6587\u5b57\u5217\u6bd4\u8f03\u300d\u3067\u306f\u306a\u304f\u300c\u3053\u306e\u30ea\u30c6\u30e9\u30eb\u306b\u7279\u5316\u3057\u305f\u6bd4\u8f03\u30b3\u30fc\u30c9\u300d\u304c\u751f\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/li>\n<li data-sourcepos=\"1136:1-1136:346\">\n<code>G_M000_IG05<\/code> \u306e <code>add r14, 72<\/code> \u3082\u8208\u5473\u6df1\u3044\u3068\u3053\u308d\u3067\u3001\u3053\u306e <code>72<\/code> \u306f <code>sizeof(Person)<\/code> \u306b\u76f8\u5f53\u3057\u307e\u3059\u3002\u30eb\u30fc\u30d7\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306e\u66f4\u65b0\u3067\u6bce\u56de <code>72<\/code> \u3092\u8db3\u3057\u3066\u3044\u308b\u3068\u3044\u3046\u3053\u3068\u306f\u3001\u300c\u884c\u30b5\u30a4\u30ba\u3092\u305d\u306e\u307e\u307e\u5b9a\u6570\u3068\u3057\u3066\u57cb\u3081\u8fbc\u3093\u3060\u30b9\u30c8\u30e9\u30a4\u30c9\u4ed8\u304d\u30eb\u30fc\u30d7\u300d\u306b\u306a\u3063\u3066\u3044\u308b\u3001\u3068\u3044\u3046\u3053\u3068\u3067\u3059\u3002<\/li>\n<li data-sourcepos=\"1137:1-1138:0\">\u540c\u3058\u304f <code>dec esi<\/code> \u306b\u3088\u3063\u3066\u3001\u914d\u5217\u306e\u672b\u5c3e\u304b\u3089\u5148\u982d\u306b\u5411\u304b\u3063\u3066\u8d70\u67fb\u3059\u308b\u300c\u6e1b\u5c11\u30ab\u30a6\u30f3\u30bf\u300d\u306e\u30eb\u30fc\u30d7\u306b\u5909\u5f62\u3055\u308c\u3066\u3044\u3066\u3001\u6bd4\u8f03\u547d\u4ee4\u3092 1 \u3064\u6e1b\u3089\u3059\u5f62\u3067\u6700\u9069\u5316\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/li>\n<\/ul>\n<p data-sourcepos=\"1139:1-1139:109\">\u3053\u308c\u3089\u3092 C# \u306b\u66f8\u304d\u623b\u3059\u3068\u3001\u6982\u306d\u6b21\u306e\u3088\u3046\u306a\u624b\u66f8\u304d\u30eb\u30fc\u30d7\u3068\u540c\u3058\u610f\u5473\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<div class=\"code-frame\" data-lang=\"csharp\" data-sourcepos=\"1141:1-1161:3\" wp_automatic_readability=\"7.5\">\n<div class=\"highlight\" wp_automatic_readability=\"10\">\n<pre><code><span class=\"kt\">int<\/span> <span class=\"n\">length<\/span> <span class=\"p\">=<\/span> <span class=\"n\">elements<\/span><span class=\"p\">.<\/span><span class=\"n\">Length<\/span><span class=\"p\">;<\/span>\n<span class=\"n\">Span<\/span><span class=\"p\"><span class=\"kt\">int<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">values<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"kt\">int<\/span><span class=\"p\">[<\/span><span class=\"n\">length<\/span><span class=\"p\">];<\/span>\n<span class=\"kt\">int<\/span> <span class=\"n\">count<\/span> <span class=\"p\">=<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">i<\/span> <span class=\"p\">=<\/span> <span class=\"n\">length<\/span> <span class=\"p\">-<\/span> <span class=\"m\">1<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span> <span class=\"p\">&gt;=<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span><span class=\"p\">--)<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"kt\">var<\/span> <span class=\"n\">elem<\/span> <span class=\"p\">=<\/span> <span class=\"n\">elements<\/span><span class=\"p\">[<\/span><span class=\"n\">i<\/span><span class=\"p\">];<\/span>\n    <span class=\"kt\">var<\/span> <span class=\"n\">city<\/span> <span class=\"p\">=<\/span> <span class=\"n\">elem<\/span><span class=\"p\">.<\/span><span class=\"n\">City<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">city<\/span> <span class=\"p\">==<\/span> <span class=\"k\">null<\/span><span class=\"p\">)<\/span>\n     <span class=\"k\">continue<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">city<\/span><span class=\"p\">.<\/span><span class=\"n\">Length<\/span> <span class=\"p\">==<\/span> <span class=\"m\">10<\/span> <span class=\"p\">&amp;&amp;<\/span> <span class=\"n\">city<\/span> <span class=\"p\">==<\/span> <span class=\"s\">\"Seattle\"<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n     <span class=\"n\">values<\/span><span class=\"p\">[<\/span><span class=\"n\">length<\/span> <span class=\"p\">-<\/span> <span class=\"m\">1<\/span> <span class=\"p\">-<\/span> <span class=\"n\">count<\/span><span class=\"p\">]<\/span> <span class=\"p\">=<\/span> <span class=\"n\">elem<\/span><span class=\"p\">.<\/span><span class=\"n\">Id<\/span><span class=\"p\">;<\/span>\n     <span class=\"n\">count<\/span><span class=\"p\">++;<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">return<\/span> <span class=\"n\">values<\/span><span class=\"p\">[..<\/span><span class=\"n\">count<\/span><span class=\"p\">];<\/span>\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p data-sourcepos=\"1163:1-1163:430\">\u898b\u3066\u306e\u901a\u308a\u3001\u62bd\u8c61\u306e\u75d5\u8de1\u306f\u6a5f\u68b0\u8a9e\u30ec\u30d9\u30eb\u3067\u306f\u307b\u3068\u3093\u3069\u6b8b\u3063\u3066\u304a\u3089\u305a\u3001\u300c<code>City == \"Seattle\"<\/code> \u3092\u6e80\u305f\u3059\u884c\u306e <code>Id<\/code> \u3092\u914d\u5217\u306b\u8a70\u3081\u308b\u3060\u3051\u300d\u306e\u7d20\u76f4\u306a\u30eb\u30fc\u30d7\u306b\u307e\u3067\u843d\u3061\u3066\u3044\u307e\u3059\u3002TypedSql \u304c\u578b\u30ec\u30d9\u30eb\u3067\u7a4d\u307f\u4e0a\u3052\u305f <code>WhereSelect<\/code> \u3084 <code>EqualsFilter<\/code> \u3068\u3044\u3063\u305f\u30ce\u30fc\u30c9\u306f\u3001JIT \u306e\u6700\u9069\u5316\u3092\u901a\u3058\u3066\u307b\u307c\u5b8c\u5168\u306b\u300c\u306f\u304e\u53d6\u3089\u308c\u305f\u300d\u72b6\u614b\u306b\u306a\u3063\u3066\u3044\u308b\u308f\u3051\u3067\u3059\u3002<\/p>\n<p data-sourcepos=\"1165:1-1165:63\">\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u7d50\u679c\u306f\u3053\u3093\u306a\u611f\u3058\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<div class=\"s_table\"><table data-sourcepos=\"1167:1-1171:81\">\n<thead>\n<tr data-sourcepos=\"1167:1-1167:85\">\n<th data-sourcepos=\"1167:2-1167:15\">\u30e1\u30bd\u30c3\u30c9<\/th>\n<th style=\"text-align: right\" data-sourcepos=\"1167:17-1167:27\">Mean<\/th>\n<th style=\"text-align: right\" data-sourcepos=\"1167:29-1167:39\">Error<\/th>\n<th style=\"text-align: right\" data-sourcepos=\"1167:41-1167:51\">StdDev<\/th>\n<th style=\"text-align: right\" data-sourcepos=\"1167:53-1167:60\">Gen0<\/th>\n<th style=\"text-align: right\" data-sourcepos=\"1167:62-1167:72\">Code Size<\/th>\n<th style=\"text-align: right\" data-sourcepos=\"1167:74-1167:84\">Allocated<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr data-sourcepos=\"1169:1-1169:81\">\n<td data-sourcepos=\"1169:2-1169:11\">TypedSql<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1169:13-1169:23\">10.953 ns<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1169:25-1169:35\">0.0250 ns<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1169:37-1169:47\">0.0195 ns<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1169:49-1169:56\">0.0051<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1169:58-1169:68\">111 B<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1169:70-1169:80\">80 B<\/td>\n<\/tr>\n<tr data-sourcepos=\"1170:1-1170:81\">\n<td data-sourcepos=\"1170:2-1170:11\">Linq<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1170:13-1170:23\">27.030 ns<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1170:25-1170:35\">0.1277 ns<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1170:37-1170:47\">0.1067 ns<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1170:49-1170:56\">0.0148<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1170:58-1170:68\">3,943 B<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1170:70-1170:80\">232 B<\/td>\n<\/tr>\n<tr data-sourcepos=\"1171:1-1171:81\">\n<td data-sourcepos=\"1171:2-1171:11\">Foreach<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1171:13-1171:23\">9.429 ns<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1171:25-1171:35\">0.0417 ns<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1171:37-1171:47\">0.0326 ns<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1171:49-1171:56\">0.0046<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1171:58-1171:68\">407 B<\/td>\n<td style=\"text-align: right\" data-sourcepos=\"1171:70-1171:80\">72 B<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<p data-sourcepos=\"1173:1-1173:399\">\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u306e\u6570\u5b57\u3092\u6539\u3081\u3066\u773a\u3081\u308b\u3068\u3001TypedSql \u306f\u5b9f\u884c\u6642\u9593\u30fb\u5272\u308a\u5f53\u3066\u3068\u3082\u306b\u624b\u66f8\u304d\u306e <code>foreach<\/code> \u306b\u304b\u306a\u308a\u8fd1\u3044\u4f4d\u7f6e\u306b\u5f35\u308a\u4ed8\u3044\u3066\u304a\u308a\u3001.NET 10 \u3067\u76f8\u5f53\u306b\u6700\u9069\u5316\u3055\u308c\u3066\u3044\u308b LINQ \u5b9f\u88c5\u3092\u306f\u3063\u304d\u308a\u3068\u4e0a\u56de\u3063\u3066\u3044\u307e\u3059\u3002\u3057\u304b\u3082\u3001\u30af\u30a8\u30ea\u306e\u66f8\u304d\u5473\u3068\u3057\u3066\u306f <strong>SQL \u306b\u304b\u306a\u308a\u8fd1\u3044 DSL\uff08\u30c9\u30e1\u30a4\u30f3\u7279\u5316\u8a00\u8a9e\uff09<\/strong> \u306e\u307e\u307e\u3067\u3059\u3002<\/p>\n<p data-sourcepos=\"1178:1-1178:96\">TypedSql \u306f\u3001\u5c0f\u3055\u306a\u30a4\u30f3\u30e1\u30e2\u30ea\u30af\u30a8\u30ea\u30a8\u30f3\u30b8\u30f3\u306e\u5b9f\u9a13\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u3059\u3002<\/p>\n<p data-sourcepos=\"1180:1-1180:202\">\u3084\u308a\u305f\u304b\u3063\u305f\u306e\u306f\u3001<strong>C# \u306e\u578b\u30b7\u30b9\u30c6\u30e0\u306b\u3069\u3053\u307e\u3067\u30ed\u30b8\u30c3\u30af\u3092\u62bc\u3057\u8fbc\u307f\u3001\u305d\u306e\u7d50\u679c\u3092 .NET \u306e JIT \u306b\u3069\u3053\u307e\u3067\u6700\u9069\u5316\u3057\u3066\u3082\u3089\u3048\u308b\u304b\uff1f<\/strong> \u3068\u3044\u3046\u691c\u8a3c\u3067\u3057\u305f\u3002<\/p>\n<p data-sourcepos=\"1182:1-1182:30\">\u5b9f\u969b\u306b\u3084\u3063\u3066\u307f\u308b\u3068\u3001<\/p>\n<ul data-sourcepos=\"1184:1-1187:0\">\n<li data-sourcepos=\"1184:1-1184:96\">\u5217\u30fb\u6295\u5f71\u30fb\u30d5\u30a3\u30eb\u30bf\u3092\u300c\u9759\u7684\u30e1\u30bd\u30c3\u30c9\u3060\u3051\u3092\u6301\u3064 struct\u300d\u3068\u3057\u3066\u8868\u73fe\u3057<\/li>\n<li data-sourcepos=\"1185:1-1185:113\">\u305d\u308c\u3089\u3092 <code>Where<\/code>, <code>Select<\/code>, <code>WhereSelect<\/code>, <code>Stop<\/code> \u3068\u3044\u3063\u305f\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u30ce\u30fc\u30c9\u306b\u7d44\u307f\u5408\u308f\u305b<\/li>\n<li data-sourcepos=\"1186:1-1187:0\">\u6570\u5024\u3084\u6587\u5b57\u5217\u306e\u30ea\u30c6\u30e9\u30eb\u307e\u3067\u542b\u3081\u3066 <code>ILiteral<t\/><\/code> \u3068\u3044\u3046\u300c\u578b\u300d\u3068\u3057\u3066\u57cb\u3081\u8fbc\u307f<\/li>\n<\/ul>\n<p data-sourcepos=\"1188:1-1188:102\">\u3068\u3044\u3046\u5f62\u3067\u3001\u300c\u30af\u30a8\u30ea\u5168\u4f53\u3092\u578b\u30b7\u30b9\u30c6\u30e0\u306e\u4e0a\u306b\u4e57\u305b\u308b\u300d\u3053\u3068\u304c\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n<p data-sourcepos=\"1190:1-1190:18\">\u7d50\u679c\u3068\u3057\u3066\u3001<\/p>\n<ul data-sourcepos=\"1192:1-1194:0\">\n<li data-sourcepos=\"1192:1-1192:81\">JIT \u304b\u3089\u898b\u308c\u3070\u3001\u305f\u3060\u306e\u300c\u5f37\u304f\u7279\u5316\u3055\u308c\u305f\u30eb\u30fc\u30d7\u300d\u306e\u96c6\u5408\u4f53<\/li>\n<li data-sourcepos=\"1193:1-1194:0\">\u958b\u767a\u8005\u304b\u3089\u898b\u308c\u3070\u3001SQL \u3063\u307d\u3044\u6587\u5b57\u5217\u3067\u30af\u30a8\u30ea\u3092\u66f8\u304f\u3060\u3051<\/li>\n<\/ul>\n<p data-sourcepos=\"1195:1-1195:96\">\u3068\u3044\u3046\u3001\u3061\u3087\u3063\u3068\u4e0d\u601d\u8b70\u306a\u30d0\u30e9\u30f3\u30b9\u306e\u30af\u30a8\u30ea\u30a8\u30f3\u30b8\u30f3\u304c\u751f\u307e\u308c\u307e\u3057\u305f\u3002<\/p>\n<p data-sourcepos=\"1197:1-1197:93\">\u3082\u3046\u5c11\u3057\u5148\u306e\u8a71\u3092\u3059\u308b\u3068\u3001\u540c\u3058\u30a2\u30a4\u30c7\u30a2\u306f\u30af\u30a8\u30ea\u30a8\u30f3\u30b8\u30f3\u306b\u9650\u3089\u305a\u3001<\/p>\n<ul data-sourcepos=\"1199:1-1202:0\">\n<li data-sourcepos=\"1199:1-1199:21\">DSL \u30b3\u30f3\u30d1\u30a4\u30e9<\/li>\n<li data-sourcepos=\"1200:1-1200:17\">\u30e9\u30f3\u30bf\u30a4\u30e0<\/li>\n<li data-sourcepos=\"1201:1-1202:0\">\u3042\u308b\u3044\u306f\u300c\u578b\u3067\u69cb\u9020\u3092\u8868\u3057\u3001JIT \u306b\u4efb\u305b\u308b\u300d\u3042\u3089\u3086\u308b\u4ed5\u7d44\u307f<\/li>\n<\/ul>\n<p data-sourcepos=\"1203:1-1203:33\">\u306b\u5fdc\u7528\u3067\u304d\u308b\u306f\u305a\u3067\u3059\u3002<\/p>\n<p data-sourcepos=\"1205:1-1205:276\">\u5834\u5408\u306b\u3088\u3063\u3066\u306f\u3001\u69cb\u7bc9\u3057\u305f\u578b\u3092\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3068\u3057\u3066\u51fa\u529b\u3057\u3066 NativeAOT\uff08.NET \u30a2\u30d7\u30ea\u3092\u30cd\u30a4\u30c6\u30a3\u30d6\u30b3\u30fc\u30c9\u306b\u4e8b\u524d\u30b3\u30f3\u30d1\u30a4\u30eb\u3059\u308b\u4ed5\u7d44\u307f\uff09\u3067\u30d3\u30eb\u30c9\u3057\u3001\u305d\u306e\u307e\u307e\u30cd\u30a4\u30c6\u30a3\u30d6\u30d0\u30a4\u30ca\u30ea\u306b\u3057\u3066\u3057\u307e\u3046\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"1207:1-1207:307\">C++ \u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3084 <code>constexpr<\/code> \u3068\u9055\u3063\u3066\u3001TypedSql \u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u306f <strong>\u5b9f\u884c\u6642\u306e\u5165\u529b\u306b\u3082\u5bfe\u5fdc\u3067\u304d\u308b<\/strong>\u3001\u3068\u3044\u3046\u306e\u3082\u30dd\u30a4\u30f3\u30c8\u3067\u3059\u3002\u300c\u578b\u30ec\u30d9\u30eb\u3067\u69cb\u9020\u3092\u56fa\u5b9a\u3057\u3064\u3064\u3001\u30af\u30a8\u30ea\u6587\u5b57\u5217\u306f\u52d5\u7684\u306b\u30b3\u30f3\u30d1\u30a4\u30eb\u3067\u304d\u308b\u300d\u3068\u3044\u3046\u67d4\u8edf\u3055\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p data-sourcepos=\"1209:1-1209:94\">TypedSql \u306e\u30b3\u30fc\u30c9\u306f GitHub \u3067\u516c\u958b\u3057\u3066\u3044\u307e\u3059\uff1a<a target=\"_blank\" href=\"https:\/\/github.com\/hez2010\/TypedSql\" class=\"autolink\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/github.com\/hez2010\/TypedSql<\/a><\/p>\n<p data-sourcepos=\"1211:1-1211:210\">\u3082\u3057\u5c11\u3057\u3067\u3082\u8208\u5473\u304c\u6e67\u3044\u305f\u3089\u3001\u305c\u3072\u81ea\u5206\u306e\u30c7\u30fc\u30bf\u3067\u904a\u3093\u3067\u307f\u3066\u304f\u3060\u3055\u3044\u3002\u300c\u578b\u30b7\u30b9\u30c6\u30e0\u3067\u3053\u3053\u307e\u3067\u3067\u304d\u308b\u306e\u304b\u300d\u3068\u3044\u3046\u3001\u3061\u3087\u3063\u3068\u3057\u305f\u9a5a\u304d\u304c\u3042\u308b\u306f\u305a\u3067\u3059\u3002<\/p>\n<p data-sourcepos=\"1213:1-1213:81\">\u305d\u3057\u3066\u3001\u3082\u3057\u6c17\u306b\u5165\u3063\u305f\u3089 Star \u3057\u3066\u3082\u3089\u3048\u308b\u3068\u5b09\u3057\u3044\u3067\u3059\u3002<\/p>\n<p data-sourcepos=\"1215:1-1215:84\">\u6700\u5f8c\u306b\u3001\u3053\u3053\u307e\u3067\u8aad\u3093\u3067\u304f\u3060\u3055\u308a\u3001\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3057\u305f\u3002<\/p>\n<\/div>\n<p><script>!function(f,b,e,v,n,t,s)\n{if(f.fbq)return;n=f.fbq=function(){n.callMethod?\nn.callMethod.apply(n,arguments):n.queue.push(arguments)};\nif(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\nn.queue=[];t=b.createElement(e);t.async=!0;\nt.src=v;s=b.getElementsByTagName(e)[0];\ns.parentNode.insertBefore(t,s)}(window, document,'script',\n'https:\/\/connect.facebook.net\/en_US\/fbevents.js');\nfbq('init', '305156090176370');\nfbq('trackSingle', '305156090176370', 'PageView');<\/script><br \/>\n<br \/>\n<br \/><a href=\"https:\/\/qiita.com\/hez2010\/items\/2936d7441c61df5a628a\">\u5143\u306e\u8a18\u4e8b\u3092\u78ba\u8a8d\u3059\u308b <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"TypedSql \u306f\u3001\u3042\u308b\u65e5\u3075\u3068\u6e67\u3044\u305f\u300c\u3061\u3087\u3063\u3068\u3057\u305f\u4e0d\u6e80\u300d\u304b\u3089\u59cb\u307e\u308a\u307e\u3057\u305f\u3002 .NET \u3067\u30b3\u30fc\u30c9\u3092\u66f8\u3044\u3066\u3044\u308b\u3068\u3001\u300c\u30af\u30a8\u30ea\u3063\u307d\u3044\u51e6\u7406\u300d\u3092\u66f8\u304f\u5834\u9762\u304c\u3088\u304f\u3042\u308a\u307e\u3059\u3002 \u4f8b\u3048\u3070\u3001\u3059\u3067\u306b\u30e1\u30e2\u30ea\u4e0a\u306b\u3042\u308b List \u3084\u914d\u5217\u3092\u30d5\u30a3\u30eb\u30bf\u3057\u3066 [&hellip;]","protected":false},"author":1,"featured_media":24999,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-24998","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hatena-blog"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>TypedSql\u2500\u2500C# \u306e\u578b\u30b7\u30b9\u30c6\u30e0\u3092\u30af\u30a8\u30ea\u30a8\u30f3\u30b8\u30f3\u3068\u3057\u3066\u300c\u60aa\u7528\u300d\u3057\u3066\u307f\u305f\u8a71 #SQL - Qiita - \u30dd\u30b1\u30b3\u30f3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/qiita.com\/hez2010\/items\/2936d7441c61df5a628a\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TypedSql\u2500\u2500C# \u306e\u578b\u30b7\u30b9\u30c6\u30e0\u3092\u30af\u30a8\u30ea\u30a8\u30f3\u30b8\u30f3\u3068\u3057\u3066\u300c\u60aa\u7528\u300d\u3057\u3066\u307f\u305f\u8a71 #SQL - Qiita - \u30dd\u30b1\u30b3\u30f3\" \/>\n<meta property=\"og:description\" content=\"TypedSql \u306f\u3001\u3042\u308b\u65e5\u3075\u3068\u6e67\u3044\u305f\u300c\u3061\u3087\u3063\u3068\u3057\u305f\u4e0d\u6e80\u300d\u304b\u3089\u59cb\u307e\u308a\u307e\u3057\u305f\u3002 .NET \u3067\u30b3\u30fc\u30c9\u3092\u66f8\u3044\u3066\u3044\u308b\u3068\u3001\u300c\u30af\u30a8\u30ea\u3063\u307d\u3044\u51e6\u7406\u300d\u3092\u66f8\u304f\u5834\u9762\u304c\u3088\u304f\u3042\u308a\u307e\u3059\u3002 \u4f8b\u3048\u3070\u3001\u3059\u3067\u306b\u30e1\u30e2\u30ea\u4e0a\u306b\u3042\u308b List \u3084\u914d\u5217\u3092\u30d5\u30a3\u30eb\u30bf\u3057\u3066 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/qiita.com\/hez2010\/items\/2936d7441c61df5a628a\" \/>\n<meta property=\"og:site_name\" content=\"\u30dd\u30b1\u30b3\u30f3\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-24T11:11:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/11\/1763982686_https3A2F2Fqiita-user-contents.imgix_.net2Fhttps253A252F252Fcdn.qiita_.com252Fassets252Fpubli.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"info@pokecon.jp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"info@pokecon.jp\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"11\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/qiita.com\\\/hez2010\\\/items\\\/2936d7441c61df5a628a#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/24998\\\/\"},\"author\":{\"name\":\"info@pokecon.jp\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#\\\/schema\\\/person\\\/16c9f07b1ba984d165d9aee259bda997\"},\"headline\":\"TypedSql\u2500\u2500C# \u306e\u578b\u30b7\u30b9\u30c6\u30e0\u3092\u30af\u30a8\u30ea\u30a8\u30f3\u30b8\u30f3\u3068\u3057\u3066\u300c\u60aa\u7528\u300d\u3057\u3066\u307f\u305f\u8a71 #SQL &#8211; Qiita\",\"datePublished\":\"2025-11-24T11:11:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/24998\\\/\"},\"wordCount\":153,\"image\":{\"@id\":\"https:\\\/\\\/qiita.com\\\/hez2010\\\/items\\\/2936d7441c61df5a628a#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/1763982686_https3A2F2Fqiita-user-contents.imgix_.net2Fhttps253A252F252Fcdn.qiita_.com252Fassets252Fpubli.jpeg\",\"articleSection\":[\"\u306f\u3066\u306a\u30d6\u30ed\u30b0\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/24998\\\/\",\"url\":\"https:\\\/\\\/qiita.com\\\/hez2010\\\/items\\\/2936d7441c61df5a628a\",\"name\":\"TypedSql\u2500\u2500C# \u306e\u578b\u30b7\u30b9\u30c6\u30e0\u3092\u30af\u30a8\u30ea\u30a8\u30f3\u30b8\u30f3\u3068\u3057\u3066\u300c\u60aa\u7528\u300d\u3057\u3066\u307f\u305f\u8a71 #SQL - Qiita - \u30dd\u30b1\u30b3\u30f3\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/qiita.com\\\/hez2010\\\/items\\\/2936d7441c61df5a628a#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/qiita.com\\\/hez2010\\\/items\\\/2936d7441c61df5a628a#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/1763982686_https3A2F2Fqiita-user-contents.imgix_.net2Fhttps253A252F252Fcdn.qiita_.com252Fassets252Fpubli.jpeg\",\"datePublished\":\"2025-11-24T11:11:27+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#\\\/schema\\\/person\\\/16c9f07b1ba984d165d9aee259bda997\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/qiita.com\\\/hez2010\\\/items\\\/2936d7441c61df5a628a#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/qiita.com\\\/hez2010\\\/items\\\/2936d7441c61df5a628a\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/qiita.com\\\/hez2010\\\/items\\\/2936d7441c61df5a628a#primaryimage\",\"url\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/1763982686_https3A2F2Fqiita-user-contents.imgix_.net2Fhttps253A252F252Fcdn.qiita_.com252Fassets252Fpubli.jpeg\",\"contentUrl\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/1763982686_https3A2F2Fqiita-user-contents.imgix_.net2Fhttps253A252F252Fcdn.qiita_.com252Fassets252Fpubli.jpeg\",\"width\":1200,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/qiita.com\\\/hez2010\\\/items\\\/2936d7441c61df5a628a#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u30db\u30fc\u30e0\",\"item\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"TypedSql\u2500\u2500C# \u306e\u578b\u30b7\u30b9\u30c6\u30e0\u3092\u30af\u30a8\u30ea\u30a8\u30f3\u30b8\u30f3\u3068\u3057\u3066\u300c\u60aa\u7528\u300d\u3057\u3066\u307f\u305f\u8a71 #SQL &#8211; Qiita\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#website\",\"url\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/\",\"name\":\"\u30dd\u30b1\u30b3\u30f3\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#\\\/schema\\\/person\\\/16c9f07b1ba984d165d9aee259bda997\",\"name\":\"info@pokecon.jp\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g\",\"caption\":\"info@pokecon.jp\"},\"url\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/author\\\/infopokecon-jp\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"TypedSql\u2500\u2500C# \u306e\u578b\u30b7\u30b9\u30c6\u30e0\u3092\u30af\u30a8\u30ea\u30a8\u30f3\u30b8\u30f3\u3068\u3057\u3066\u300c\u60aa\u7528\u300d\u3057\u3066\u307f\u305f\u8a71 #SQL - Qiita - \u30dd\u30b1\u30b3\u30f3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/qiita.com\/hez2010\/items\/2936d7441c61df5a628a","og_locale":"ja_JP","og_type":"article","og_title":"TypedSql\u2500\u2500C# \u306e\u578b\u30b7\u30b9\u30c6\u30e0\u3092\u30af\u30a8\u30ea\u30a8\u30f3\u30b8\u30f3\u3068\u3057\u3066\u300c\u60aa\u7528\u300d\u3057\u3066\u307f\u305f\u8a71 #SQL - Qiita - \u30dd\u30b1\u30b3\u30f3","og_description":"TypedSql \u306f\u3001\u3042\u308b\u65e5\u3075\u3068\u6e67\u3044\u305f\u300c\u3061\u3087\u3063\u3068\u3057\u305f\u4e0d\u6e80\u300d\u304b\u3089\u59cb\u307e\u308a\u307e\u3057\u305f\u3002 .NET \u3067\u30b3\u30fc\u30c9\u3092\u66f8\u3044\u3066\u3044\u308b\u3068\u3001\u300c\u30af\u30a8\u30ea\u3063\u307d\u3044\u51e6\u7406\u300d\u3092\u66f8\u304f\u5834\u9762\u304c\u3088\u304f\u3042\u308a\u307e\u3059\u3002 \u4f8b\u3048\u3070\u3001\u3059\u3067\u306b\u30e1\u30e2\u30ea\u4e0a\u306b\u3042\u308b List \u3084\u914d\u5217\u3092\u30d5\u30a3\u30eb\u30bf\u3057\u3066 [&hellip;]","og_url":"https:\/\/qiita.com\/hez2010\/items\/2936d7441c61df5a628a","og_site_name":"\u30dd\u30b1\u30b3\u30f3","article_published_time":"2025-11-24T11:11:27+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/11\/1763982686_https3A2F2Fqiita-user-contents.imgix_.net2Fhttps253A252F252Fcdn.qiita_.com252Fassets252Fpubli.jpeg","type":"image\/jpeg"}],"author":"info@pokecon.jp","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"info@pokecon.jp","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"11\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/qiita.com\/hez2010\/items\/2936d7441c61df5a628a#article","isPartOf":{"@id":"https:\/\/pokecon.jp\/job\/24998\/"},"author":{"name":"info@pokecon.jp","@id":"https:\/\/pokecon.jp\/job\/#\/schema\/person\/16c9f07b1ba984d165d9aee259bda997"},"headline":"TypedSql\u2500\u2500C# \u306e\u578b\u30b7\u30b9\u30c6\u30e0\u3092\u30af\u30a8\u30ea\u30a8\u30f3\u30b8\u30f3\u3068\u3057\u3066\u300c\u60aa\u7528\u300d\u3057\u3066\u307f\u305f\u8a71 #SQL &#8211; Qiita","datePublished":"2025-11-24T11:11:27+00:00","mainEntityOfPage":{"@id":"https:\/\/pokecon.jp\/job\/24998\/"},"wordCount":153,"image":{"@id":"https:\/\/qiita.com\/hez2010\/items\/2936d7441c61df5a628a#primaryimage"},"thumbnailUrl":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/11\/1763982686_https3A2F2Fqiita-user-contents.imgix_.net2Fhttps253A252F252Fcdn.qiita_.com252Fassets252Fpubli.jpeg","articleSection":["\u306f\u3066\u306a\u30d6\u30ed\u30b0"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/pokecon.jp\/job\/24998\/","url":"https:\/\/qiita.com\/hez2010\/items\/2936d7441c61df5a628a","name":"TypedSql\u2500\u2500C# \u306e\u578b\u30b7\u30b9\u30c6\u30e0\u3092\u30af\u30a8\u30ea\u30a8\u30f3\u30b8\u30f3\u3068\u3057\u3066\u300c\u60aa\u7528\u300d\u3057\u3066\u307f\u305f\u8a71 #SQL - Qiita - \u30dd\u30b1\u30b3\u30f3","isPartOf":{"@id":"https:\/\/pokecon.jp\/job\/#website"},"primaryImageOfPage":{"@id":"https:\/\/qiita.com\/hez2010\/items\/2936d7441c61df5a628a#primaryimage"},"image":{"@id":"https:\/\/qiita.com\/hez2010\/items\/2936d7441c61df5a628a#primaryimage"},"thumbnailUrl":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/11\/1763982686_https3A2F2Fqiita-user-contents.imgix_.net2Fhttps253A252F252Fcdn.qiita_.com252Fassets252Fpubli.jpeg","datePublished":"2025-11-24T11:11:27+00:00","author":{"@id":"https:\/\/pokecon.jp\/job\/#\/schema\/person\/16c9f07b1ba984d165d9aee259bda997"},"breadcrumb":{"@id":"https:\/\/qiita.com\/hez2010\/items\/2936d7441c61df5a628a#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/qiita.com\/hez2010\/items\/2936d7441c61df5a628a"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/qiita.com\/hez2010\/items\/2936d7441c61df5a628a#primaryimage","url":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/11\/1763982686_https3A2F2Fqiita-user-contents.imgix_.net2Fhttps253A252F252Fcdn.qiita_.com252Fassets252Fpubli.jpeg","contentUrl":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/11\/1763982686_https3A2F2Fqiita-user-contents.imgix_.net2Fhttps253A252F252Fcdn.qiita_.com252Fassets252Fpubli.jpeg","width":1200,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/qiita.com\/hez2010\/items\/2936d7441c61df5a628a#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u30db\u30fc\u30e0","item":"https:\/\/pokecon.jp\/job\/"},{"@type":"ListItem","position":2,"name":"TypedSql\u2500\u2500C# \u306e\u578b\u30b7\u30b9\u30c6\u30e0\u3092\u30af\u30a8\u30ea\u30a8\u30f3\u30b8\u30f3\u3068\u3057\u3066\u300c\u60aa\u7528\u300d\u3057\u3066\u307f\u305f\u8a71 #SQL &#8211; Qiita"}]},{"@type":"WebSite","@id":"https:\/\/pokecon.jp\/job\/#website","url":"https:\/\/pokecon.jp\/job\/","name":"\u30dd\u30b1\u30b3\u30f3","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pokecon.jp\/job\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/pokecon.jp\/job\/#\/schema\/person\/16c9f07b1ba984d165d9aee259bda997","name":"info@pokecon.jp","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/secure.gravatar.com\/avatar\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g","caption":"info@pokecon.jp"},"url":"https:\/\/pokecon.jp\/job\/author\/infopokecon-jp\/"}]}},"_links":{"self":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts\/24998","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/comments?post=24998"}],"version-history":[{"count":1,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts\/24998\/revisions"}],"predecessor-version":[{"id":25000,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts\/24998\/revisions\/25000"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/media\/24999"}],"wp:attachment":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/media?parent=24998"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/categories?post=24998"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/tags?post=24998"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}