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
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...