{"id":14081,"date":"2023-03-26T10:55:05","date_gmt":"2023-03-26T07:25:05","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/ef-core-7-json-columns-2k1f\/"},"modified":"2023-03-26T10:55:05","modified_gmt":"2023-03-26T07:25:05","slug":"ef-core-7-json-columns-2k1f","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/ef-core-7-json-columns-2k1f\/","title":{"rendered":"EF Core 7: \u0633\u062a\u0648\u0646 \u0647\u0627\u06cc Json"},"content":{"rendered":"<div data-article-id=\"1415079\" id=\"article-body\">\n<blockquote>\n<p><strong>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f<\/strong><br \/>\u0627\u06a9\u062b\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0631\u0627\u0628\u0637\u0647 \u0627\u06cc \u0627\u0632 \u0633\u062a\u0648\u0646 \u0647\u0627\u06cc\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u0646\u062f \u06a9\u0647 \u062d\u0627\u0648\u06cc \u0627\u0633\u0646\u0627\u062f JSON \u0647\u0633\u062a\u0646\u062f.  JSON \u062f\u0631 \u0627\u06cc\u0646 \u0633\u062a\u0648\u0646\u200c\u0647\u0627 \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0628\u0627 \u067e\u0631\u0633\u200c\u0648\u200c\u062c\u0648\u0647\u0627 \u062f\u0631\u06cc\u0644 \u06a9\u0631\u062f.  \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0641\u06cc\u0644\u062a\u0631 \u06a9\u0631\u062f\u0646 \u0648 \u0645\u0631\u062a\u0628 \u0633\u0627\u0632\u06cc \u0628\u0631 \u0627\u0633\u0627\u0633 \u0639\u0646\u0627\u0635\u0631 \u0627\u0633\u0646\u0627\u062f \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0646\u0645\u0627\u06cc\u0634 \u0639\u0646\u0627\u0635\u0631 \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0628\u0647 \u0646\u062a\u0627\u06cc\u062c \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.  \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc JSON \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u06cc \u0631\u0627\u0628\u0637\u0647\u200c\u0627\u06cc \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u062a\u0627 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0627\u0633\u0646\u0627\u062f \u0631\u0627 \u0628\u0647 \u062e\u0648\u062f \u0628\u06af\u06cc\u0631\u0646\u062f \u0648 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0645\u0641\u06cc\u062f \u0628\u06cc\u0646 \u0627\u06cc\u0646 \u062f\u0648 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u0646\u062f.  -\u0627\u0632 \u0645\u0627\u06cc\u06a9\u0631\u0648\u0633\u0627\u0641\u062a<\/p>\n<\/blockquote>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/ef-core-7-json-columns-2k1f\/#%D9%85%D9%87%D9%85\" >\u0645\u0647\u0645<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/ef-core-7-json-columns-2k1f\/#%D9%87%D8%AF%D9%81_%D8%A7%DB%8C%D9%86_%D9%85%D9%82%D8%A7%D9%84%D9%87\" >\u0647\u062f\u0641 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/ef-core-7-json-columns-2k1f\/#%D9%85%D8%AB%D8%A7%D9%84_1\" >\u0645\u062b\u0627\u0644 1<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/ef-core-7-json-columns-2k1f\/#%D9%85%D8%AB%D8%A7%D9%84_2\" >\u0645\u062b\u0627\u0644 2<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/ef-core-7-json-columns-2k1f\/#%D9%85%D8%AB%D8%A7%D9%84_3\" >\u0645\u062b\u0627\u0644 3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/ef-core-7-json-columns-2k1f\/#%D8%AE%D9%84%D8%A7%D8%B5%D9%87\" >\u062e\u0644\u0627\u0635\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/ef-core-7-json-columns-2k1f\/#%DA%A9%D8%AF_%D9%85%D9%86%D8%A8%D8%B9\" >\u06a9\u062f \u0645\u0646\u0628\u0639<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/ef-core-7-json-columns-2k1f\/#%D9%87%D9%85%DA%86%D9%86%DB%8C%D9%86_%D8%A8%D8%A8%DB%8C%D9%86%DB%8C%D8%AF\" >\u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0628\u06cc\u0646\u06cc\u062f<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D9%87%D9%85\"><\/span>\n<p>  \u0645\u0647\u0645<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0647 \u062c\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0646\u062a\u0642\u0627\u0644\u060c \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062f\u0631 SSMS \u0627\u06cc\u062c\u0627\u062f \u0634\u062f (SQL-Server Management Studio) \u0633\u067e\u0633 \u0628\u0627 EF Power Tools \u0645\u0647\u0646\u062f\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 \u0634\u062f \u062a\u0627 \u0627\u06cc\u0646\u06a9\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc\u06cc \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc json \u0628\u0631\u0627\u06cc \u0627\u0634\u0627\u0631\u0647 \u0628\u0647 \u06a9\u0644\u0627\u0633 \u0647\u0627 \u0628\u0647 \u062c\u0627\u06cc \u0646\u0648\u0639 nvarchar \u0628\u0648\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0628\u0627 EF Core \u0646\u0633\u0628\u062a\u0627\u064b \u062a\u0627\u0632\u0647 \u06a9\u0627\u0631 \u0647\u0633\u062a\u06cc\u062f\u060c \u0628\u0631\u0627\u06cc \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u062f \u0646\u0645\u0648\u0646\u0647 \u0632\u0645\u0627\u0646 \u0628\u06af\u0630\u0627\u0631\u06cc\u062f\u060c \u06a9\u062f \u0631\u0627 \u0645\u0637\u0627\u0644\u0639\u0647 \u06a9\u0646\u06cc\u062f\u060c \u06a9\u062f \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u0648 \u06a9\u062f \u0631\u0627 \u062f\u0631\u06a9 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0648\u0642\u062a\u06cc \u0627\u0632 \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc json \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0645\u062f\u0644 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0634\u0645\u0627 \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a \u0646\u0647 \u0627\u06cc\u0646\u06a9\u0647 \u0635\u0631\u0641\u0627\u064b \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0632\u06cc\u0631\u0627 \u062c\u062f\u06cc\u062f \u0627\u0633\u062a.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%87%D8%AF%D9%81_%D8%A7%DB%8C%D9%86_%D9%85%D9%82%D8%A7%D9%84%D9%87\"><\/span>\n<p>  \u0647\u062f\u0641 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0631\u0627\u0626\u0647 \u0686\u0646\u062f\u06cc\u0646 \u0646\u0645\u0648\u0646\u0647 \u06a9\u062f \u0648\u0627\u0636\u062d \u0648 \u0645\u062e\u062a\u0635\u0631 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631 \u0628\u0627 \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc Json\u060c \u0632\u06cc\u0631\u0627 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0646\u0645\u0648\u0646\u0647\u200c\u0647\u0627\u06cc \u06a9\u062f \u062f\u0631 \u0648\u0628 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0631\u062f\u0646 \u0622\u0633\u0627\u0646 \u0646\u06cc\u0633\u062a.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%AB%D8%A7%D9%84_1\"><\/span>\n<p>  \u0645\u062b\u0627\u0644 1<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0627 \u06cc\u06a9 \u062c\u062f\u0648\u0644 Person \u062f\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u06cc\u06a9 \u062a\u0627 \u0686\u0646\u062f\u06cc\u0646 \u0622\u062f\u0631\u0633 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u062f\u0644 \u0634\u062e\u0635 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight csharp\"><code><span class=\"k\">public<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">Address<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Company<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Street<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">City<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">override<\/span> <span class=\"kt\">string<\/span> <span class=\"nf\">ToString<\/span><span class=\"p\">()<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"n\">Company<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u062f\u0644 \u0634\u062e\u0635<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight csharp\"><code><span class=\"k\">public<\/span> <span class=\"k\">partial<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">Person<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">Id<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">FirstName<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">LastName<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"n\">DateTime<\/span> <span class=\"n\">DateOfBirth<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">public<\/span> <span class=\"n\">List<\/span><span class=\"p\">&lt;<\/span><span class=\"n\">Address<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">Addresses<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">override<\/span> <span class=\"kt\">string<\/span> <span class=\"nf\">ToString<\/span><span class=\"p\">()<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"s\">$\"<\/span><span class=\"p\">{<\/span><span class=\"n\">FirstName<\/span><span class=\"p\">}<\/span><span class=\"s\"> <\/span><span class=\"p\">{<\/span><span class=\"n\">LastName<\/span><span class=\"p\">}<\/span><span class=\"s\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0622\u062f\u0631\u0633 \u0628\u0647 \u0635\u0648\u0631\u062a nvarchar \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p><\/p>\n<p>\u0628\u0631\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc EF Core \u0628\u0631\u0627\u06cc \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc Json \u0628\u0631\u0627\u06cc \u0648\u06cc\u0698\u06af\u06cc Address \u0645\u062f\u0644 Person\u060c \u0627\u0632 \u06a9\u062f \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u06a9\u0647 OwnsMany \u06a9\u0644\u06cc\u062f \u0622\u0646 \u0627\u0633\u062a \u0648 \u0628\u0647 \u0648\u06cc\u0698\u06af\u06cc Address \u0627\u0634\u0627\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/03\/1679815504_410_EF-Core-7-\u0633\u062a\u0648\u0646-\u0647\u0627\u06cc-Json.png\" alt=\"OnModelCreating \u062f\u0631 DbContext \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0622\u062f\u0631\u0633 \u0647\u0627\" loading=\"lazy\" width=\"880\" height=\"369\" title=\"\"><\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0631\u06a9\u0648\u0631\u062f \u062c\u062f\u06cc\u062f \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 \u0633\u067e\u0633 \u0648\u06cc\u0698\u06af\u06cc City \u06cc\u06a9\u06cc \u0627\u0632 \u0622\u062f\u0631\u0633 \u0647\u0627 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight csharp\"><code><span class=\"k\">private<\/span> <span class=\"k\">static<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">AddOnePerson<\/span><span class=\"p\">()<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">using<\/span> <span class=\"nn\">var<\/span> <span class=\"n\">context<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">Context<\/span><span class=\"p\">();<\/span>\n\n    <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"n\">Database<\/span><span class=\"p\">.<\/span><span class=\"nf\">EnsureDeleted<\/span><span class=\"p\">();<\/span>\n    <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"n\">Database<\/span><span class=\"p\">.<\/span><span class=\"nf\">EnsureCreated<\/span><span class=\"p\">();<\/span>\n\n    <span class=\"n\">Person<\/span> <span class=\"n\">person<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">Person<\/span><span class=\"p\">()<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"n\">Addresses<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">List<\/span><span class=\"p\">&lt;<\/span><span class=\"n\">Address<\/span><span class=\"p\">&gt;()<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"k\">new<\/span><span class=\"p\">()<\/span>\n            <span class=\"p\">{<\/span>\n                <span class=\"n\">Company<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"Company1\"<\/span><span class=\"p\">,<\/span> \n                <span class=\"n\">City<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"Wyndmoor\"<\/span><span class=\"p\">,<\/span> \n                <span class=\"n\">Street<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"123 Apple St\"<\/span>\n            <span class=\"p\">},<\/span>\n            <span class=\"k\">new<\/span><span class=\"p\">()<\/span>\n            <span class=\"p\">{<\/span>\n                <span class=\"n\">Company<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"Company2\"<\/span><span class=\"p\">,<\/span> \n                <span class=\"n\">City<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"Portland\"<\/span><span class=\"p\">,<\/span> \n                <span class=\"n\">Street<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"999 34th St\"<\/span>\n            <span class=\"p\">},<\/span>\n        <span class=\"p\">},<\/span>\n        <span class=\"n\">FirstName<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"Karen\"<\/span><span class=\"p\">,<\/span>\n        <span class=\"n\">LastName<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"Payne\"<\/span><span class=\"p\">,<\/span>\n        <span class=\"n\">DateOfBirth<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">DateTime<\/span><span class=\"p\">(<\/span><span class=\"m\">1956<\/span><span class=\"p\">,<\/span> <span class=\"m\">9<\/span><span class=\"p\">,<\/span> <span class=\"m\">24<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">};<\/span>\n\n    <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"nf\">Add<\/span><span class=\"p\">(<\/span><span class=\"n\">person<\/span><span class=\"p\">);<\/span>\n    <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"nf\">SaveChanges<\/span><span class=\"p\">();<\/span>\n\n    <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"n\">Person<\/span><span class=\"p\">.<\/span><span class=\"nf\">FirstOrDefault<\/span><span class=\"p\">()!<\/span>\n        <span class=\"p\">.<\/span><span class=\"n\">Addresses<\/span>\n        <span class=\"p\">.<\/span><span class=\"nf\">FirstOrDefault<\/span><span class=\"p\">()<\/span>\n        <span class=\"p\">!.<\/span><span class=\"n\">City<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"Ambler\"<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"nf\">SaveChanges<\/span><span class=\"p\">();<\/span>\n\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06af\u0631 \u0645\u062f\u062a\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 EF Core \u06a9\u0627\u0631 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f\u060c \u0622\u062e\u0631\u06cc\u0646 \u0628\u0644\u0648\u06a9 \u06a9\u062f \u0648\u0627\u0642\u0639\u0627\u064b \u0628\u0627 \u0639\u062f\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0633\u062a\u0648\u0646 \u0647\u0627\u06cc Json \u062a\u0641\u0627\u0648\u062a\u06cc \u0646\u062f\u0627\u0631\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u062e\u0648\u0627\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight csharp\"><code><span class=\"k\">private<\/span> <span class=\"k\">static<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">ReadOnePerson<\/span><span class=\"p\">()<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">using<\/span> <span class=\"nn\">var<\/span> <span class=\"n\">context<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">Context<\/span><span class=\"p\">();<\/span>\n    <span class=\"kt\">var<\/span> <span class=\"n\">person<\/span> <span class=\"p\">=<\/span> <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"n\">Person<\/span><span class=\"p\">.<\/span><span class=\"nf\">FirstOrDefault<\/span><span class=\"p\">();<\/span>\n    <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">person<\/span> <span class=\"k\">is<\/span> <span class=\"n\">Person<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"n\">AnsiConsole<\/span><span class=\"p\">.<\/span><span class=\"nf\">MarkupLine<\/span><span class=\"p\">(<\/span><span class=\"s\">$\"[white]<\/span><span class=\"p\">{<\/span><span class=\"n\">person<\/span><span class=\"p\">.<\/span><span class=\"n\">Id<\/span><span class=\"p\">,-<\/span><span class=\"m\">4<\/span><span class=\"p\">}{<\/span><span class=\"n\">person<\/span><span class=\"p\">.<\/span><span class=\"n\">FirstName<\/span><span class=\"p\">,-<\/span><span class=\"m\">10<\/span><span class=\"p\">}{<\/span><span class=\"n\">person<\/span><span class=\"p\">.<\/span><span class=\"n\">LastName<\/span><span class=\"p\">,-<\/span><span class=\"m\">10<\/span><span class=\"p\">}{<\/span><span class=\"n\">person<\/span><span class=\"p\">.<\/span><span class=\"n\">DateOfBirth<\/span><span class=\"p\">:<\/span><span class=\"n\">d<\/span><span class=\"p\">}<\/span><span class=\"s\">[\/]\"<\/span><span class=\"p\">);<\/span>\n        <span class=\"k\">foreach<\/span> <span class=\"p\">(<\/span><span class=\"kt\">var<\/span> <span class=\"n\">address<\/span> <span class=\"k\">in<\/span> <span class=\"n\">person<\/span><span class=\"p\">.<\/span><span class=\"n\">Addresses<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"n\">AnsiConsole<\/span><span class=\"p\">.<\/span><span class=\"nf\">MarkupLine<\/span><span class=\"p\">(<\/span><span class=\"s\">$\"\\t[green]<\/span><span class=\"p\">{<\/span><span class=\"n\">address<\/span><span class=\"p\">.<\/span><span class=\"n\">Company<\/span><span class=\"p\">,-<\/span><span class=\"m\">10<\/span><span class=\"p\">}{<\/span><span class=\"n\">address<\/span><span class=\"p\">.<\/span><span class=\"n\">Street<\/span><span class=\"p\">,-<\/span><span class=\"m\">15<\/span><span class=\"p\">}{<\/span><span class=\"n\">address<\/span><span class=\"p\">.<\/span><span class=\"n\">City<\/span><span class=\"p\">}<\/span><span class=\"s\">[\/]\"<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"kt\">var<\/span> <span class=\"n\">firstPerson<\/span> <span class=\"p\">=<\/span> <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"n\">Person<\/span><span class=\"p\">.<\/span><span class=\"nf\">FirstOrDefault<\/span><span class=\"p\">(<\/span><span class=\"n\">x<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"n\">x<\/span><span class=\"p\">.<\/span><span class=\"n\">Id<\/span> <span class=\"p\">==<\/span> <span class=\"m\">1<\/span><span class=\"p\">);<\/span>\n    <span class=\"kt\">var<\/span> <span class=\"n\">portlandAddress<\/span> <span class=\"p\">=<\/span> <span class=\"n\">firstPerson<\/span><span class=\"p\">!.<\/span><span class=\"n\">Addresses<\/span><span class=\"p\">.<\/span><span class=\"nf\">FirstOrDefault<\/span><span class=\"p\">(<\/span><span class=\"n\">x<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"n\">x<\/span><span class=\"p\">.<\/span><span class=\"n\">City<\/span> <span class=\"p\">==<\/span> <span class=\"s\">\"Portland\"<\/span><span class=\"p\">);<\/span>\n    <span class=\"n\">AnsiConsole<\/span><span class=\"p\">.<\/span><span class=\"nf\">MarkupLine<\/span><span class=\"p\">(<\/span><span class=\"s\">$\"[white]<\/span><span class=\"p\">{<\/span><span class=\"n\">firstPerson<\/span><span class=\"p\">.<\/span><span class=\"n\">LastName<\/span><span class=\"p\">,-<\/span><span class=\"m\">8<\/span><span class=\"p\">}{<\/span><span class=\"n\">portlandAddress<\/span><span class=\"p\">!.<\/span><span class=\"n\">Company<\/span><span class=\"p\">}<\/span><span class=\"s\">[\/]\"<\/span><span class=\"p\">);<\/span>\n\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u0646\u062f \u06a9\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0628\u0647 \u062f\u0644\u0627\u06cc\u0644\u06cc \u0627\u0632 EF Core \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u060c \u0622\u0646\u0647\u0627 \u0647\u0645\u0686\u0646\u0627\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0627 \u0627\u06cc\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u06a9\u0627\u0631 \u06a9\u0646\u0646\u062f \u0627\u0645\u0627 \u0628\u0647 \u06a9\u0627\u0631 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u0646\u062f.  \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u062e\u0648\u0627\u0646\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight csharp\"><code><span class=\"k\">internal<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">DataProviderOperations<\/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\">ReadPersonAddress<\/span><span class=\"p\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">index<\/span> <span class=\"p\">=<\/span> <span class=\"m\">0<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"n\">AnsiConsole<\/span><span class=\"p\">.<\/span><span class=\"nf\">MarkupLine<\/span><span class=\"p\">(<\/span><span class=\"s\">$\"[cyan]Read data for address <\/span><span class=\"p\">{<\/span><span class=\"n\">index<\/span> <span class=\"p\">+<\/span><span class=\"m\">1<\/span><span class=\"p\">}<\/span><span class=\"s\">[\/]\"<\/span><span class=\"p\">);<\/span>\n        <span class=\"kt\">var<\/span> <span class=\"n\">statement<\/span> <span class=\"p\">=<\/span>\n            <span class=\"s\">\"SELECT Id, FirstName, LastName, DateOfBirth, \"<\/span> <span class=\"p\">+<\/span> \n            <span class=\"s\">$\"JSON_VALUE(Addresses, '$[<\/span><span class=\"p\">{<\/span><span class=\"n\">index<\/span><span class=\"p\">}<\/span><span class=\"s\">].Street') AS Street, JSON_VALUE(Addresses, '$[<\/span><span class=\"p\">{<\/span><span class=\"n\">index<\/span><span class=\"p\">}<\/span><span class=\"s\">].City') AS City, JSON_VALUE(Addresses, '$[<\/span><span class=\"p\">{<\/span><span class=\"n\">index<\/span><span class=\"p\">}<\/span><span class=\"s\">].Company') AS Company FROM dbo.Person;\"<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"k\">using<\/span> <span class=\"nn\">SqlConnection<\/span> <span class=\"n\">cn<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span><span class=\"p\">(<\/span><span class=\"n\">ConfigurationHelper<\/span><span class=\"p\">.<\/span><span class=\"nf\">ConnectionString<\/span><span class=\"p\">());<\/span>\n        <span class=\"k\">using<\/span> <span class=\"nn\">SqlCommand<\/span> <span class=\"n\">cmd<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span> <span class=\"n\">Connection<\/span> <span class=\"p\">=<\/span> <span class=\"n\">cn<\/span><span class=\"p\">,<\/span> <span class=\"n\">CommandText<\/span> <span class=\"p\">=<\/span> <span class=\"n\">statement<\/span> <span class=\"p\">};<\/span>\n\n        <span class=\"n\">cn<\/span><span class=\"p\">.<\/span><span class=\"nf\">Open<\/span><span class=\"p\">();<\/span>\n\n        <span class=\"n\">DataTable<\/span> <span class=\"n\">dt<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">DataTable<\/span><span class=\"p\">();<\/span>\n        <span class=\"n\">dt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Load<\/span><span class=\"p\">(<\/span><span class=\"n\">cmd<\/span><span class=\"p\">.<\/span><span class=\"nf\">ExecuteReader<\/span><span class=\"p\">());<\/span>\n\n        <span class=\"k\">foreach<\/span> <span class=\"p\">(<\/span><span class=\"n\">DataRow<\/span> <span class=\"n\">row<\/span> <span class=\"k\">in<\/span> <span class=\"n\">dt<\/span><span class=\"p\">.<\/span><span class=\"n\">Rows<\/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=\"kt\">string<\/span><span class=\"p\">.<\/span><span class=\"nf\">Join<\/span><span class=\"p\">(<\/span><span class=\"s\">\", \"<\/span><span class=\"p\">,<\/span> <span class=\"n\">row<\/span><span class=\"p\">.<\/span><span class=\"n\">ItemArray<\/span><span class=\"p\">)}<\/span><span class=\"s\">\"<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"n\">Console<\/span><span class=\"p\">.<\/span><span class=\"nf\">WriteLine<\/span><span class=\"p\">();<\/span>\n        <span class=\"n\">AnsiConsole<\/span><span class=\"p\">.<\/span><span class=\"nf\">MarkupLine<\/span><span class=\"p\">(<\/span><span class=\"s\">\"[cyan]DataTable columns[\/]\"<\/span><span class=\"p\">);<\/span>\n        <span class=\"k\">foreach<\/span> <span class=\"p\">(<\/span><span class=\"n\">DataColumn<\/span> <span class=\"n\">column<\/span> <span class=\"k\">in<\/span> <span class=\"n\">dt<\/span><span class=\"p\">.<\/span><span class=\"n\">Columns<\/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\">column<\/span><span class=\"p\">.<\/span><span class=\"n\">ColumnName<\/span><span class=\"p\">,-<\/span><span class=\"m\">15<\/span><span class=\"p\">}{<\/span><span class=\"n\">column<\/span><span class=\"p\">.<\/span><span class=\"n\">DataType<\/span><span class=\"p\">.<\/span><span class=\"n\">Name<\/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 class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%AB%D8%A7%D9%84_2\"><\/span>\n<p>  \u0645\u062b\u0627\u0644 2<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u06cc\u06a9 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u06cc\u06a9 \u06a9\u067e\u06cc \u0627\u0632 \u0642\u0648\u0627\u0646\u06cc\u0646 WCAG \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 json \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f \u0648 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u062f \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u062c\u062f\u0648\u0644 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 SQL-Server \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 json \u0632\u06cc\u0631 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight json\"><code><span class=\"p\">{<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"Section\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"1-2-1\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"id\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"media-equiv-av-only-alt\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"title\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"Audio-only and Video-only (Prerecorded)\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"description\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"For prerecorded audio-only and prerecorded video-only media, the following are true, except when the audio or video is a media alternative for text and is clearly labeled as such:\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"uri\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"http:\/\/www.w3.org\/TR\/WCAG20\/#media-equiv-av-only-alt\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"conformance_level\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"A\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"wuhcag_summary\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"Provide an alternative to video-only and audio-only content\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"wuhcag_detail\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003Cp<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003Cstrong<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003EProvide an alternative to video-only and audio-only content<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003C\/strong<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003C\/p<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\n\\u<\/span><span class=\"s2\">003Cp<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003ESome users will find it difficult to use or understand things like podcasts and silent videos or animations.<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003C\/p<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\n\\u<\/span><span class=\"s2\">003Ch2<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003EWhat to do<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003C\/h2<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\n\\u<\/span><span class=\"s2\">003Cul<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">  <\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003Cli<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003EWrite text transcripts for any audio-only media;<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003C\/li<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">  <\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003Cli<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003EWrite text transcripts for any video-only media; or<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003C\/li<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">  <\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003Cli<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003ERecord an audio-track for any video-only media;<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003C\/li<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">  <\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003Cli<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003EPlace the text transcript, or link to it, close to the media.<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003C\/li<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\n\\u<\/span><span class=\"s2\">003C\/ul<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"wuhcag_tips\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003Cp<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003EAudio-only and video-only content needs to be supported by text transcripts that convey the same information as the media. Sometimes this is quite simple, other times you have to make a judgement call on what that really means. The best bet is, as always,to be honest with your customers: what does the media convey and does your transcript do the same? Could you swap one for the other?<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003C\/p<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\n\\u<\/span><span class=\"s2\">003Cp<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003EOne of the most common uses for text transcripts is when a podcast is published online. Embedding a podcast in a page is a great way of sharing your content but no good for your customers with hearing impairments. A text transcript should contain everything mentioned in the recording.<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003C\/p<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\n\\u<\/span><span class=\"s2\">003Cp<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003ELess commonly, some videos do not have sound. Your customers with visual impairments need help with this kind of content. A text transcript for a video without sound should describe what is going on in the video as clearly as possible. Try to focus on<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">  what the video is trying to say rather than getting bogged down with detail.<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003C\/p<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\n\\u<\/span><span class=\"s2\">003Cdiv class=<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0027mailmunch-forms-in-post-middle<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0027 style=<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0027display: none !important;<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0027<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003C\/div<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\n\\u<\/span><span class=\"s2\">003Cp<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003EAs an alternative for video-only content, you could also choose to record an audio track that narrates the video.<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003C\/p<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\n\\u<\/span><span class=\"s2\">003Cp<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003EFor both audio-only and video-only, create your text transcript and place it either directly beneath the content or insert a link next to the content.<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003C\/p<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"wuhcag_what_to_do\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"wuhcag_exceptions\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003Cp<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003EIf the content is itself an alternative (you don<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">2019t have to provide a transcript of the audio track you provided to explain the silent video you used).<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003C\/p<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">003E<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"wuhcag_related\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"w\">\n      <\/span><span class=\"p\">{<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"Section\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"1-2-2\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"conformance_level\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"A\"<\/span><span class=\"w\">\n      <\/span><span class=\"p\">},<\/span><span class=\"w\">\n      <\/span><span class=\"p\">{<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"Section\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"1-2-3\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"conformance_level\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"A\"<\/span><span class=\"w\">\n      <\/span><span class=\"p\">},<\/span><span class=\"w\">\n      <\/span><span class=\"p\">{<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"Section\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"1-2-5\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"conformance_level\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"AA\"<\/span><span class=\"w\">\n      <\/span><span class=\"p\">},<\/span><span class=\"w\">\n      <\/span><span class=\"p\">{<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"Section\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"1-2-7\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"conformance_level\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"AAA\"<\/span><span class=\"w\">\n      <\/span><span class=\"p\">},<\/span><span class=\"w\">\n      <\/span><span class=\"p\">{<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"Section\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"1-2-8\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"conformance_level\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"AAA\"<\/span><span class=\"w\">\n      <\/span><span class=\"p\">}<\/span><span class=\"w\">\n    <\/span><span class=\"p\">],<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"RelatedList\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"w\">\n      <\/span><span class=\"p\">{<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"Section\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">00221-2-2<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0022\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"ConformanceLevel\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0022A<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0022\"<\/span><span class=\"w\">\n      <\/span><span class=\"p\">},<\/span><span class=\"w\">\n      <\/span><span class=\"p\">{<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"Section\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">00221-2-3<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0022\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"ConformanceLevel\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0022A<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0022\"<\/span><span class=\"w\">\n      <\/span><span class=\"p\">},<\/span><span class=\"w\">\n      <\/span><span class=\"p\">{<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"Section\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">00221-2-5<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0022\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"ConformanceLevel\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0022AA<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0022\"<\/span><span class=\"w\">\n      <\/span><span class=\"p\">},<\/span><span class=\"w\">\n      <\/span><span class=\"p\">{<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"Section\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">00221-2-7<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0022\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"ConformanceLevel\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0022AAA<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0022\"<\/span><span class=\"w\">\n      <\/span><span class=\"p\">},<\/span><span class=\"w\">\n      <\/span><span class=\"p\">{<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"Section\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">00221-2-8<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0022\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"ConformanceLevel\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0022AAA<\/span><span class=\"se\">\\u<\/span><span class=\"s2\">0022\"<\/span><span class=\"w\">\n      <\/span><span class=\"p\">}<\/span><span class=\"w\">\n    <\/span><span class=\"p\">]<\/span><span class=\"w\">\n  <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u0627\u0644\u0627 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0686\u0646\u062f\u0627\u0646 \u062a\u0645\u06cc\u0632 \u0646\u0628\u0648\u062f\u0646\u062f \u0648 \u0631\u0641\u0639 \u0622\u0646 \u0632\u0645\u0627\u0646 \u0628\u0631 \u0628\u0648\u062f.<\/p>\n<p>RelatedList \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u062f\u0631 \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u060c \u0627\u0645\u0627 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f \u06a9\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0646\u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0645\u062f\u0644 \u0628\u0631\u0627\u06cc RelatedList<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight csharp\"><code><span class=\"k\">public<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">Related<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Section<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">ConformanceLevel<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">override<\/span> <span class=\"kt\">string<\/span> <span class=\"nf\">ToString<\/span><span class=\"p\">()<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"s\">$\"<\/span><span class=\"p\">{<\/span><span class=\"n\">Section<\/span><span class=\"p\">,<\/span> <span class=\"p\">-<\/span><span class=\"m\">10<\/span><span class=\"p\">}{<\/span><span class=\"n\">ConformanceLevel<\/span><span class=\"p\">}<\/span><span class=\"s\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0644\u0627\u0633\/\u0645\u062f\u0644 \u0627\u0635\u0644\u06cc \u0628\u0627 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0646\u0627\u0645 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 \u0628\u0647 \u062e\u0648\u0628\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight csharp\"><code><span class=\"k\">public<\/span> <span class=\"k\">partial<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">WebStandards<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">Identifier<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Section<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"p\">[<\/span><span class=\"nf\">JsonPropertyName<\/span><span class=\"p\">(<\/span><span class=\"s\">\"id\"<\/span><span class=\"p\">)]<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Id<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"p\">[<\/span><span class=\"nf\">JsonPropertyName<\/span><span class=\"p\">(<\/span><span class=\"s\">\"title\"<\/span><span class=\"p\">)]<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Title<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"p\">[<\/span><span class=\"nf\">JsonPropertyName<\/span><span class=\"p\">(<\/span><span class=\"s\">\"description\"<\/span><span class=\"p\">)]<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Description<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"p\">[<\/span><span class=\"nf\">JsonPropertyName<\/span><span class=\"p\">(<\/span><span class=\"s\">\"uri\"<\/span><span class=\"p\">)]<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Uri<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"p\">[<\/span><span class=\"nf\">JsonPropertyName<\/span><span class=\"p\">(<\/span><span class=\"s\">\"conformance_level\"<\/span><span class=\"p\">)]<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">ConformanceLevel<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"p\">[<\/span><span class=\"nf\">JsonPropertyName<\/span><span class=\"p\">(<\/span><span class=\"s\">\"wuhcag_summary\"<\/span><span class=\"p\">)]<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Summary<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"p\">[<\/span><span class=\"nf\">JsonPropertyName<\/span><span class=\"p\">(<\/span><span class=\"s\">\"wuhcag_detail\"<\/span><span class=\"p\">)]<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Detail<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"p\">[<\/span><span class=\"nf\">JsonPropertyName<\/span><span class=\"p\">(<\/span><span class=\"s\">\"wuhcag_tips\"<\/span><span class=\"p\">)]<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Tips<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"p\">[<\/span><span class=\"nf\">JsonPropertyName<\/span><span class=\"p\">(<\/span><span class=\"s\">\"wuhcag_what_to_do\"<\/span><span class=\"p\">)]<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Remedy<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"p\">[<\/span><span class=\"nf\">JsonPropertyName<\/span><span class=\"p\">(<\/span><span class=\"s\">\"wuhcag_exceptions\"<\/span><span class=\"p\">)]<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Exceptions<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"n\">List<\/span><span class=\"p\">&lt;<\/span><span class=\"n\">Related<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">RelatedList<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u062f\u0644 \u062c\u062f\u0648\u0644 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/03\/1679815504_334_EF-Core-7-\u0633\u062a\u0648\u0646-\u0647\u0627\u06cc-Json.png\" alt=\"\u0645\u062f\u0644 \u062c\u062f\u0648\u0644 WebStandards \u0627\u0632 SSMS\" loading=\"lazy\" width=\"307\" height=\"332\" title=\"\"><\/p>\n<p>\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062f\u0631 DbContext<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/03\/1679815505_442_EF-Core-7-\u0633\u062a\u0648\u0646-\u0647\u0627\u06cc-Json.png\" alt=\"\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc DbContext\" loading=\"lazy\" width=\"880\" height=\"300\" title=\"\"><\/p>\n<p>\u06a9\u062f \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 json \u0627\u0632 \u06cc\u06a9 \u0641\u0627\u06cc\u0644<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight csharp\"><code><span class=\"k\">internal<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">JsonOperations<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">private<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">FileName<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"s\">\"wcagNew.json\"<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"n\">List<\/span><span class=\"p\">&lt;<\/span><span class=\"n\">WebStandards<\/span><span class=\"p\">&gt;<\/span> <span class=\"nf\">Read<\/span><span class=\"p\">()<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"kt\">var<\/span> <span class=\"n\">jsonString<\/span> <span class=\"p\">=<\/span> <span class=\"n\">File<\/span><span class=\"p\">.<\/span><span class=\"nf\">ReadAllText<\/span><span class=\"p\">(<\/span><span class=\"n\">FileName<\/span><span class=\"p\">);<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">JsonSerializer<\/span><span class=\"p\">.<\/span><span class=\"n\">Deserialize<\/span><span class=\"p\">&lt;<\/span><span class=\"n\">List<\/span><span class=\"p\">&lt;<\/span><span class=\"n\">WebStandards<\/span><span class=\"p\">&gt;&gt;(<\/span><span class=\"n\">jsonString<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0645\u062d\u062a\u0648\u06cc\u0627\u062a \u0641\u0627\u06cc\u0644 json \u0628\u0647 \u062c\u062f\u0648\u0644 \u0648 \u0627\u0646\u062c\u0627\u0645 \u0686\u0646\u062f\u06cc\u0646 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u06a9\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight csharp\"><code><span class=\"k\">internal<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">DataOperations<\/span>\n<span class=\"p\">{<\/span>\n\n    <span class=\"c1\">\/\/\/ &lt;summary&gt;<\/span>\n    <span class=\"c1\">\/\/\/ Populate table from reading a json file<\/span>\n    <span class=\"c1\">\/\/\/ &lt;\/summary&gt;<\/span>\n    <span class=\"c1\">\/\/\/ &lt;param name=\"list\"&gt;Data from json&lt;\/param&gt;<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">AddRange<\/span><span class=\"p\">(<\/span><span class=\"n\">List<\/span><span class=\"p\">&lt;<\/span><span class=\"n\">WebStandards<\/span><span class=\"p\">&gt;<\/span> <span class=\"n\">list<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">using<\/span> <span class=\"nn\">var<\/span> <span class=\"n\">context<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">Context<\/span><span class=\"p\">();<\/span>\n        <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"n\">Database<\/span><span class=\"p\">.<\/span><span class=\"nf\">EnsureDeleted<\/span><span class=\"p\">();<\/span>\n        <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"n\">Database<\/span><span class=\"p\">.<\/span><span class=\"nf\">EnsureCreated<\/span><span class=\"p\">();<\/span>\n        <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"nf\">AddRange<\/span><span class=\"p\">(<\/span><span class=\"n\">list<\/span><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=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"nf\">SaveChanges<\/span><span class=\"p\">());<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"c1\">\/\/\/ &lt;summary&gt;<\/span>\n    <span class=\"c1\">\/\/\/ * Read data from database<\/span>\n    <span class=\"c1\">\/\/\/ * Get all AA complaint items<\/span>\n    <span class=\"c1\">\/\/\/ &lt;\/summary&gt;<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">Read<\/span><span class=\"p\">()<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">using<\/span> <span class=\"nn\">var<\/span> <span class=\"n\">context<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">Context<\/span><span class=\"p\">();<\/span>\n        <span class=\"kt\">var<\/span> <span class=\"n\">standards<\/span> <span class=\"p\">=<\/span> <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"n\">WebStandards<\/span><span class=\"p\">.<\/span><span class=\"nf\">ToList<\/span><span class=\"p\">();<\/span>\n\n        <span class=\"k\">foreach<\/span> <span class=\"p\">(<\/span><span class=\"kt\">var<\/span> <span class=\"n\">standard<\/span> <span class=\"k\">in<\/span> <span class=\"n\">standards<\/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\">standard<\/span><span class=\"p\">.<\/span><span class=\"n\">Identifier<\/span><span class=\"p\">,-<\/span><span class=\"m\">5<\/span><span class=\"p\">}{<\/span><span class=\"n\">standard<\/span><span class=\"p\">.<\/span><span class=\"n\">Title<\/span><span class=\"p\">}<\/span><span class=\"s\">\"<\/span><span class=\"p\">);<\/span>\n            <span class=\"c1\">\/\/ not all items have related items so assert for null list<\/span>\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">standard<\/span><span class=\"p\">.<\/span><span class=\"n\">RelatedList<\/span> <span class=\"k\">is<\/span> <span class=\"n\">not<\/span> <span class=\"k\">null<\/span><span class=\"p\">)<\/span>\n            <span class=\"p\">{<\/span>\n                <span class=\"k\">foreach<\/span> <span class=\"p\">(<\/span><span class=\"kt\">var<\/span> <span class=\"n\">related<\/span> <span class=\"k\">in<\/span> <span class=\"n\">standard<\/span><span class=\"p\">.<\/span><span class=\"n\">RelatedList<\/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\">$\"\\t<\/span><span class=\"p\">{<\/span><span class=\"n\">related<\/span><span class=\"p\">.<\/span><span class=\"n\">Section<\/span><span class=\"p\">,-<\/span><span class=\"m\">10<\/span><span class=\"p\">}{<\/span><span class=\"n\">related<\/span><span class=\"p\">.<\/span><span class=\"n\">ConformanceLevel<\/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 class=\"p\">}<\/span>\n\n        <span class=\"kt\">var<\/span> <span class=\"n\">aaStandards<\/span> <span class=\"p\">=<\/span> <span class=\"n\">standards<\/span><span class=\"p\">.<\/span><span class=\"nf\">Where<\/span><span class=\"p\">(<\/span><span class=\"n\">x<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"n\">x<\/span><span class=\"p\">.<\/span><span class=\"n\">ConformanceLevel<\/span> <span class=\"p\">==<\/span> <span class=\"s\">\"AA\"<\/span><span class=\"p\">);<\/span>\n\n        <span class=\"n\">AnsiConsole<\/span><span class=\"p\">.<\/span><span class=\"nf\">MarkupLine<\/span><span class=\"p\">(<\/span><span class=\"s\">\"[cyan]ConformanceLevel AA[\/]\"<\/span><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=\"n\">aaStandards<\/span><span class=\"p\">.<\/span><span class=\"nf\">Count<\/span><span class=\"p\">());<\/span>\n\n        <span class=\"n\">AnsiConsole<\/span><span class=\"p\">.<\/span><span class=\"nf\">MarkupLine<\/span><span class=\"p\">(<\/span><span class=\"s\">\"[cyan]Keyboard traps[\/]\"<\/span><span class=\"p\">);<\/span>\n        <span class=\"kt\">var<\/span> <span class=\"n\">keyboardTraps<\/span> <span class=\"p\">=<\/span> <span class=\"n\">standards<\/span><span class=\"p\">.<\/span><span class=\"nf\">FirstOrDefault<\/span><span class=\"p\">(<\/span><span class=\"n\">x<\/span> <span class=\"p\">=&gt;<\/span> <span class=\"n\">x<\/span><span class=\"p\">.<\/span><span class=\"n\">Title<\/span> <span class=\"p\">==<\/span> <span class=\"s\">\"No Keyboard Trap\"<\/span><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=\"n\">keyboardTraps<\/span><span class=\"p\">.<\/span><span class=\"n\">Description<\/span><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=\"n\">keyboardTraps<\/span><span class=\"p\">.<\/span><span class=\"n\">Uri<\/span><span class=\"p\">);<\/span>\n\n        <span class=\"k\">foreach<\/span> <span class=\"p\">(<\/span><span class=\"kt\">var<\/span> <span class=\"n\">related<\/span> <span class=\"k\">in<\/span> <span class=\"n\">keyboardTraps<\/span><span class=\"p\">.<\/span><span class=\"n\">RelatedList<\/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\">$\"\\t<\/span><span class=\"p\">{<\/span><span class=\"n\">related<\/span><span class=\"p\">.<\/span><span class=\"n\">Section<\/span><span class=\"p\">,-<\/span><span class=\"m\">10<\/span><span class=\"p\">}{<\/span><span class=\"n\">related<\/span><span class=\"p\">.<\/span><span class=\"n\">ConformanceLevel<\/span><span class=\"p\">}<\/span><span class=\"s\">\"<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"n\">Console<\/span><span class=\"p\">.<\/span><span class=\"nf\">WriteLine<\/span><span class=\"p\">();<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u0648\u0627\u0631\u062f \u0641\u0648\u0642 \u0627\u0632 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u06a9\u0646\u0633\u0648\u0644.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight csharp\"><code><span class=\"k\">internal<\/span> <span class=\"k\">partial<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">Program<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">static<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">Main<\/span><span class=\"p\">(<\/span><span class=\"kt\">string<\/span><span class=\"p\">[]<\/span> <span class=\"n\">args<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"n\">DataOperations<\/span><span class=\"p\">.<\/span><span class=\"nf\">AddRange<\/span><span class=\"p\">(<\/span><span class=\"n\">JsonOperations<\/span><span class=\"p\">.<\/span><span class=\"nf\">Read<\/span><span class=\"p\">());<\/span>\n\n        <span class=\"n\">DataOperations<\/span><span class=\"p\">.<\/span><span class=\"nf\">Read<\/span><span class=\"p\">();<\/span>\n        <span class=\"n\">AnsiConsole<\/span><span class=\"p\">.<\/span><span class=\"nf\">MarkupLine<\/span><span class=\"p\">(<\/span><span class=\"s\">\"[yellow]Done[\/]\"<\/span><span class=\"p\">);<\/span>\n        <span class=\"n\">Console<\/span><span class=\"p\">.<\/span><span class=\"nf\">ReadLine<\/span><span class=\"p\">();<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%AB%D8%A7%D9%84_3\"><\/span>\n<p>  \u0645\u062b\u0627\u0644 3<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0642\u0628\u0644\u06cc \u06a9\u0647 \u0627\u0632 OwnMany \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u0645\u060c \u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 \u06cc\u06a9 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0645\u062f\u0644 \u0627\u0635\u0644\u06cc \u0628\u0627 \u062f\u0648 \u0633\u062a\u0648\u0646 json \u062f\u0627\u0631\u06cc\u0645\u060c \u06cc\u06a9\u06cc \u0628\u0631\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u06cc\u0645\u06cc\u0644 \u0648 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0631\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0639\u0645\u0648\u0645\u06cc.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight csharp\"><code><span class=\"k\">public<\/span> <span class=\"k\">partial<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">Applications<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">ApplicationId<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"c1\">\/\/\/ &lt;summary&gt;<\/span>\n    <span class=\"c1\">\/\/\/ Application identifier<\/span>\n    <span class=\"c1\">\/\/\/ &lt;\/summary&gt;<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">ApplicationName<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"c1\">\/\/\/ &lt;summary&gt;<\/span>\n    <span class=\"c1\">\/\/\/ Contact name<\/span>\n    <span class=\"c1\">\/\/\/ &lt;\/summary&gt;<\/span>\n    <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">ContactName<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n\n    <span class=\"c1\">\/\/\/ &lt;summary&gt;<\/span>\n    <span class=\"c1\">\/\/\/ For sending email messages<\/span>\n    <span class=\"c1\">\/\/\/ &lt;\/summary&gt;<\/span>\n    <span class=\"k\">public<\/span> <span class=\"n\">MailSettings<\/span> <span class=\"n\">MailSettings<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">public<\/span> <span class=\"n\">GeneralSettings<\/span> <span class=\"n\">GeneralSettings<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<span class=\"k\">public<\/span> <span class=\"k\">partial<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">GeneralSettings<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"n\">required<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">ServicePath<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">public<\/span> <span class=\"n\">required<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">MainDatabaseConnection<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<span class=\"k\">public<\/span> <span class=\"k\">partial<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">MailSettings<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"n\">required<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">FromAddress<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">public<\/span> <span class=\"n\">required<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">Host<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">public<\/span> <span class=\"n\">required<\/span> <span class=\"kt\">int<\/span><span class=\"p\">?<\/span> <span class=\"n\">Port<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">public<\/span> <span class=\"n\">required<\/span> <span class=\"kt\">int<\/span><span class=\"p\">?<\/span> <span class=\"n\">TimeOut<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">public<\/span> <span class=\"n\">required<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">PickupFolder<\/span> <span class=\"p\">{<\/span> <span class=\"k\">get<\/span><span class=\"p\">;<\/span> <span class=\"k\">set<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0633\u067e\u0633 \u062f\u0631 DbContext<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/03\/1679815505_165_EF-Core-7-\u0633\u062a\u0648\u0646-\u0647\u0627\u06cc-Json.png\" alt=\"\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc DbContext\" loading=\"lazy\" width=\"880\" height=\"525\" title=\"\"><\/p>\n<p>\u0648 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u06a9\u062f \u0628\u0631\u0627\u06cc \u067e\u0631 \u06a9\u0631\u062f\u0646 \u0648 \u062e\u0648\u0627\u0646\u062f\u0646 \u0645\u062c\u062f\u062f \u062f\u0627\u062f\u0647 \u0647\u0627.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight csharp\"><code><span class=\"k\">namespace<\/span> <span class=\"nn\">HybridTestProject<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/\/ &lt;summary&gt;<\/span>\n    <span class=\"c1\">\/\/\/ Fast and dirty, not true test<\/span>\n    <span class=\"c1\">\/\/\/ &lt;\/summary&gt;<\/span>\n    <span class=\"p\">[<\/span><span class=\"n\">TestClass<\/span><span class=\"p\">]<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">partial<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">MainTest<\/span> <span class=\"p\">:<\/span> <span class=\"n\">TestBase<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"p\">[<\/span><span class=\"n\">TestMethod<\/span><span class=\"p\">]<\/span>\n        <span class=\"p\">[<\/span><span class=\"n\">Ignore<\/span><span class=\"p\">]<\/span>\n        <span class=\"p\">[<\/span><span class=\"nf\">TestTraits<\/span><span class=\"p\">(<\/span><span class=\"n\">Trait<\/span><span class=\"p\">.<\/span><span class=\"n\">EntityFrameworkCore<\/span><span class=\"p\">)]<\/span>\n        <span class=\"k\">public<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">AddRecordsTest<\/span><span class=\"p\">()<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"k\">using<\/span> <span class=\"nn\">var<\/span> <span class=\"n\">context<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">Context<\/span><span class=\"p\">();<\/span>\n            <span class=\"n\">Applications<\/span> <span class=\"n\">application1<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span><span class=\"p\">()<\/span>\n            <span class=\"p\">{<\/span>\n                <span class=\"n\">ApplicationName<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"ACED\"<\/span><span class=\"p\">,<\/span>\n                <span class=\"n\">ContactName<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"Kim Jenkins\"<\/span><span class=\"p\">,<\/span>\n                <span class=\"n\">MailSettings<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">MailSettings<\/span><span class=\"p\">()<\/span>\n                <span class=\"p\">{<\/span>\n                    <span class=\"n\">FromAddress<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"FromAddressAced\"<\/span><span class=\"p\">,<\/span> \n                    <span class=\"n\">Host<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"AcedHost\"<\/span><span class=\"p\">,<\/span> \n                    <span class=\"n\">PickupFolder<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"C:\\\\MailDrop\"<\/span><span class=\"p\">,<\/span> \n                    <span class=\"n\">Port<\/span> <span class=\"p\">=<\/span> <span class=\"m\">15<\/span><span class=\"p\">,<\/span> \n                    <span class=\"n\">TimeOut<\/span> <span class=\"p\">=<\/span> <span class=\"m\">2000<\/span>\n                <span class=\"p\">},<\/span>\n                <span class=\"n\">GeneralSettings<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">GeneralSettings<\/span><span class=\"p\">()<\/span>\n                <span class=\"p\">{<\/span>\n                    <span class=\"n\">ServicePath<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"http:\/\/localhost:11111\/api\/\"<\/span><span class=\"p\">,<\/span>\n                    <span class=\"n\">MainDatabaseConnection<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"Data Source=.\\\\sqlexpress;Initial Catalog=WorkingWithDate;Integrated Security=True;Encrypt=False\"<\/span>\n                <span class=\"p\">}<\/span>\n            <span class=\"p\">};<\/span>\n\n            <span class=\"n\">Applications<\/span> <span class=\"n\">application2<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span><span class=\"p\">()<\/span>\n            <span class=\"p\">{<\/span>\n                <span class=\"n\">ApplicationName<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"SIDES\"<\/span><span class=\"p\">,<\/span>\n                <span class=\"n\">ContactName<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"Mike Adams\"<\/span><span class=\"p\">,<\/span>\n                <span class=\"n\">MailSettings<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">MailSettings<\/span><span class=\"p\">()<\/span>\n                <span class=\"p\">{<\/span>\n                    <span class=\"n\">FromAddress<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"FromAddressSides\"<\/span><span class=\"p\">,<\/span>\n                    <span class=\"n\">Host<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"SidesHost\"<\/span><span class=\"p\">,<\/span>\n                    <span class=\"n\">PickupFolder<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"C:\\\\MailDrop\"<\/span><span class=\"p\">,<\/span>\n                    <span class=\"n\">Port<\/span> <span class=\"p\">=<\/span> <span class=\"m\">15<\/span><span class=\"p\">,<\/span>\n                    <span class=\"n\">TimeOut<\/span> <span class=\"p\">=<\/span> <span class=\"m\">2000<\/span>\n                <span class=\"p\">},<\/span>\n                <span class=\"n\">GeneralSettings<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">GeneralSettings<\/span><span class=\"p\">()<\/span>\n                <span class=\"p\">{<\/span>\n                    <span class=\"n\">ServicePath<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"http:\/\/localhost:22222\/api\/\"<\/span><span class=\"p\">,<\/span>\n                    <span class=\"n\">MainDatabaseConnection<\/span> <span class=\"p\">=<\/span> <span class=\"s\">\"Data Source=.\\\\sqlexpress;Initial Catalog=WorkingWithTime;Integrated Security=True;Encrypt=False\"<\/span>\n                <span class=\"p\">}<\/span>\n            <span class=\"p\">};<\/span>\n\n            <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"nf\">Add<\/span><span class=\"p\">(<\/span><span class=\"n\">application1<\/span><span class=\"p\">);<\/span>\n            <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"nf\">Add<\/span><span class=\"p\">(<\/span><span class=\"n\">application2<\/span><span class=\"p\">);<\/span>\n\n            <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"nf\">SaveChanges<\/span><span class=\"p\">();<\/span>\n\n        <span class=\"p\">}<\/span>\n        <span class=\"p\">[<\/span><span class=\"n\">TestMethod<\/span><span class=\"p\">]<\/span>\n        <span class=\"p\">[<\/span><span class=\"nf\">TestTraits<\/span><span class=\"p\">(<\/span><span class=\"n\">Trait<\/span><span class=\"p\">.<\/span><span class=\"n\">EntityFrameworkCore<\/span><span class=\"p\">)]<\/span>\n        <span class=\"k\">public<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">SimpleReadTest<\/span><span class=\"p\">()<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"k\">using<\/span> <span class=\"nn\">var<\/span> <span class=\"n\">context<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">Context<\/span><span class=\"p\">();<\/span>\n            <span class=\"kt\">var<\/span> <span class=\"n\">apps<\/span> <span class=\"p\">=<\/span> <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"n\">Applications<\/span><span class=\"p\">.<\/span><span class=\"nf\">ToList<\/span><span class=\"p\">();<\/span>\n\n            <span class=\"k\">foreach<\/span> <span class=\"p\">(<\/span><span class=\"kt\">var<\/span> <span class=\"n\">app<\/span> <span class=\"k\">in<\/span> <span class=\"n\">apps<\/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\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">ApplicationId<\/span><span class=\"p\">,-<\/span><span class=\"m\">4<\/span><span class=\"p\">}{<\/span><span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">ApplicationName<\/span><span class=\"p\">,-<\/span><span class=\"m\">8<\/span><span class=\"p\">}{<\/span><span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">MailSettings<\/span><span class=\"p\">.<\/span><span class=\"n\">Host<\/span><span class=\"p\">}<\/span><span class=\"s\">\"<\/span><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\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">GeneralSettings<\/span><span class=\"p\">.<\/span><span class=\"n\">MainDatabaseConnection<\/span><span class=\"p\">}<\/span><span class=\"s\">\"<\/span><span class=\"p\">);<\/span>\n            <span class=\"p\">}<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"p\">[<\/span><span class=\"n\">TestMethod<\/span><span class=\"p\">]<\/span>\n        <span class=\"p\">[<\/span><span class=\"nf\">TestTraits<\/span><span class=\"p\">(<\/span><span class=\"n\">Trait<\/span><span class=\"p\">.<\/span><span class=\"n\">EntityFrameworkCore<\/span><span class=\"p\">)]<\/span>\n        <span class=\"k\">public<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">ReadOneTest<\/span><span class=\"p\">()<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"k\">using<\/span> <span class=\"nn\">var<\/span> <span class=\"n\">context<\/span> <span class=\"p\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">Context<\/span><span class=\"p\">();<\/span>\n\n            <span class=\"kt\">var<\/span> <span class=\"n\">app<\/span> <span class=\"p\">=<\/span> <span class=\"n\">context<\/span><span class=\"p\">.<\/span><span class=\"n\">Applications<\/span><span class=\"p\">.<\/span><span class=\"nf\">FirstOrDefault<\/span><span class=\"p\">(<\/span><span class=\"n\">x<\/span> <span class=\"p\">=&gt;<\/span> \n                <span class=\"n\">x<\/span><span class=\"p\">.<\/span><span class=\"n\">MailSettings<\/span><span class=\"p\">.<\/span><span class=\"n\">FromAddress<\/span> <span class=\"p\">==<\/span> <span class=\"s\">\"FromAddressSides\"<\/span><span class=\"p\">);<\/span>\n\n            <span class=\"n\">Assert<\/span><span class=\"p\">.<\/span><span class=\"nf\">IsNotNull<\/span><span class=\"p\">(<\/span><span class=\"n\">app<\/span><span class=\"p\">);<\/span>\n\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AE%D9%84%D8%A7%D8%B5%D9%87\"><\/span>\n<p>  \u062e\u0644\u0627\u0635\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062a\u06cc\u0645 Microsoft EF Core \u0634\u0631\u0648\u0639 \u06a9\u0627\u0631 \u0628\u0627 json \u0631\u0627 \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 SQL-Server \u0622\u0633\u0627\u0646 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a.  \u0622\u0646\u0647\u0627 \u0622\u0646\u0686\u0647 \u0631\u0627 \u06a9\u0647 \u0628\u0627 \u0633\u062a\u0648\u0646 \u0647\u0627\u06cc json \u062f\u0631 \u0646\u0633\u062e\u0647 \u0628\u0639\u062f\u06cc EF Core\u060c EF Core 8 \u0627\u0645\u06a9\u0627\u0646 \u067e\u0630\u06cc\u0631 \u0627\u0633\u062a\u060c \u0627\u0635\u0644\u0627\u062d \u062e\u0648\u0627\u0647\u0646\u062f \u06a9\u0631\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%DA%A9%D8%AF_%D9%85%D9%86%D8%A8%D8%B9\"><\/span>\n<p>  \u06a9\u062f \u0645\u0646\u0628\u0639<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u062e\u0632\u0646 GitHub \u0632\u06cc\u0631 \u0631\u0627 \u06a9\u0644\u0648\u0646 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u067e\u0631\u0648\u0698\u0647 \u0647\u0627<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%87%D9%85%DA%86%D9%86%DB%8C%D9%86_%D8%A8%D8%A8%DB%8C%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0628\u06cc\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0639\u0644\u0627\u0645 Entity Framework Core 7 RC2: JSON Columns<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f\u0627\u06a9\u062b\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0631\u0627\u0628\u0637\u0647 \u0627\u06cc \u0627\u0632 \u0633\u062a\u0648\u0646 \u0647\u0627\u06cc\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u0646\u062f \u06a9\u0647 \u062d\u0627\u0648\u06cc \u0627\u0633\u0646\u0627\u062f JSON \u0647\u0633\u062a\u0646\u062f. JSON \u062f\u0631 \u0627\u06cc\u0646 \u0633\u062a\u0648\u0646\u200c\u0647\u0627 \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0628\u0627 \u067e\u0631\u0633\u200c\u0648\u200c\u062c\u0648\u0647\u0627 \u062f\u0631\u06cc\u0644 \u06a9\u0631\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0641\u06cc\u0644\u062a\u0631 \u06a9\u0631\u062f\u0646 \u0648 \u0645\u0631\u062a\u0628 \u0633\u0627\u0632\u06cc \u0628\u0631 \u0627\u0633\u0627\u0633 \u0639\u0646\u0627\u0635\u0631 \u0627\u0633\u0646\u0627\u062f \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0646\u0645\u0627\u06cc\u0634 \u0639\u0646\u0627\u0635\u0631 \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0628\u0647 \u0646\u062a\u0627\u06cc\u062c \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f. &hellip;<\/p>\n","protected":false},"author":2,"featured_media":14082,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-14081","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/14081","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=14081"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/14081\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/14082"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=14081"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=14081"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=14081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}