2019周筆記(2.18-2.23)

来源:https://www.cnblogs.com/dissun/archive/2019/02/25/10425515.html
-Advertisement-
Play Games

這周沒有什麼太專題的東西,就流水賬記一下。最近開始入手轉型Asp.net MVC,雖然已經落後時代幾條街,但是還是趕趕追追。有一些太細的點記在我的筆記里,就不記到這裡了,每次發博客園都是第二遍編寫,希望能增加記憶。 2019.02.19以前都是在C#程式中直接生成MD5,這一次由於邏輯需要,要在SQ ...


這周沒有什麼太專題的東西,就流水賬記一下。最近開始入手轉型Asp.net MVC,雖然已經落後時代幾條街,但是還是趕趕追追。有一些太細的點記在我的筆記里,就不記到這裡了,每次發博客園都是第二遍編寫,希望能增加記憶。

 

 


2019.02.19
以前都是在C#程式中直接生成MD5,這一次由於邏輯需要,要在SQL 直接生成MD5,學習了一個語句:
select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','123456')),3,32)
然後進行了發散得到以下知識:
1、--HashBytes ('加密方式', '待加密的值')--(有個疑問,為什麼他的返回類型是二進位,最終select出來的確實0x開頭的16進位???)
--加密方式= MD2 | MD4 | MD5 | SHA | SHA1
--返回值類型:varbinary(maximum 8000 bytes)
select HashBytes('MD5','123456')
--HashBytes生成的結果為:0xE10ADC3949BA59ABBE56E057F20F883E

其中,'待加密的值'要非常小心,賦的值相同,如果類型不同,得到的md5相差甚遠。例如:varchar(10),nvarchar(10),因為他們的實際存儲大小不一樣。

2、sys.fn_sqlvarbasetostr用於把位元組流類型varbinary,轉化成字元流varchar
3、substring('原始字元串','開始位置','截取長度')字元串截取。有一點需要註意的是,sql跟C#程式不同的是,開始位置是從1開始的,不是0,別算錯了

2019.02.20
通過MVC的一個[ValidateAntiForgeryToken]特性學習到了“跨網站請求偽造”(CSRF(Cross-site request forgery))這個概念,意思就是第三方站點利用漏洞站點對瀏覽器cookie的信任,發送虛假請求,從而做出一些未經用戶許可的操作,前提是用戶未退出信任站點的會話,並且信任站點在本地產生了cookie。之前確實沒怎麼註意這個細節,只是現在開發的WebAPI項目中根本沒有用到cookie,連session也沒用,所以應該是安全的。

2019.02.21
集合類型的幾種選擇思路:
1.如果你返回的集合是只用於遍歷,不可修改的,則返回IEnumerable<T>
2.如果返回的集合需要修改,如添加和刪除元素,用ICollection<T>
3.如果返回的集合需要支持排序,索引等,用IList<T>
4.如果返回的集合要支持索引,但不能添加,刪除元素,用ReadOnlyCollection<T>

2019.02.22
1、泛型:Func<T, bool>,Expression<Func<T, bool>>用法
Func<T, bool>:.net系統自定義了兩種委托,有返回值的Func,無返回值的Action。而Func的最後一個參數總是委托的返回類型。
Expression<Func<T, bool>>:是一種表達式,EF中where要求的類型
例如:

//正確的代碼
Expression<Func<QuestionFeed, bool>> predicate=null;
if (type == 1)
{
  predicate = f => f.FeedID == id && f.IsActive == true;
}
else
{
  predicate = f => f.FeedID == id;
}
_questionFeedRepository.Entities.Where(predicate);

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、.NET MVC 學習筆記(一)——新建MVC工程 接觸MVC有段時間了,一直想找機會整理一下,可是限於文筆太差,所以一直遲遲羞於下手,想到最近做過的MVC項目也有一些了,花點時間整理一下方便以後工作。 開發環境: VS2015 1. 打開VS2015 2. 點擊【新建項目...】,選擇【ASP ...
  • 今天我來學習泛型,泛型是編程入門學習的基礎類型,從.net誕生2.0開始就出現了泛型,今天我們開始學習泛型的語法和使用。 什麼是泛型? 泛型(generic)是C#語言2.0和通用語言運行時(CLR)的一個新特性。泛型為.NET框架引入了類型參數(type parameters)的概念。類型參數使得 ...
  • var retryTimes = 5; //重試次數 int times = 0; skip: //代碼段開始 //處理邏輯 var result=false ; //處理結果 //..... //處理邏輯 //判斷 處理結果是否成功, 並且 重試次數是否達到上限 (處理成功,不需要重試,或達到上限 ...
  • 上篇我們說到了基於EFCore的基礎擴展,這篇我們講解下基於實體結合拉姆達表達式的自定義更新以及刪除數據. 先說下原理:其實通過實體以及拉姆達表達式生成SQL語句去執行 第一種更新擴展: 自定義更新欄位以及自定義擴展條件,請看下麵的代碼 從上面的方法中我們看到幾個參數,第一個參數不必說,擴展方法第一 ...
  • 先從下圖看整體項目結構: Mango.Manager: 為後臺管理項目 Mango.Web: 為前臺項目 Mango.Framework.Core: 為常用的基礎操作類項目 Mango.Framework.EFCore: 為基於EFCore封裝以及相關擴展類庫項目 Mango.Framework.S ...
  • 一. 反向工程 反向工程是基於資料庫架構,生成的實體類和DbContext類代碼的過程,對於Visual Studio開發,建議使用PMC。對於其他開發環境,請選擇.NET Core CLI工具(跨平臺)。 (1) 在程式包管理器控制台(PMC)工具中使用命令Scaffold-DbContext 來 ...
  • 一、學校階段 在這裡,很多人很迷茫,不懂學這些C語言,數據架構,Java,資料庫等等這些鳥語是幹嘛用,出去能幹嘛,於是很多人有的放棄掉學習,有的人抱著走一步算一步的思想一路走下去 其實無可厚非,每個人從高中畢業到大學階段,誰能預料到以後能幹嘛,都是摸著石頭過河,除非有一個願意帶你的人或者家裡的兄弟姐 ...
  • 1. 簡單的HeaderedContentControl 上周五收到反饋,在一個ContentControl的ControlTemplate中放兩個ContentPresenter會出錯。出錯的例子是我以前博客中HeaderedContentControl的代碼,這個控制項是UWP最簡單的控制項之一,它 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...