2018年10月26日 星期五

[C#6.0]新語法

先筆記一下
1.nameof 表示式
2.字串插值 
3.Null 條件運算子

請參考
https://www.huanlintalk.com/2015/01/csharp6-enhanced-expressions.html
https://docs.microsoft.com/zh-tw/dotnet/csharp/language-reference/keywords/nameof
https://docs.microsoft.com/zh-tw/dotnet/csharp/tutorials/string-interpolation
https://docs.microsoft.com/zh-tw/dotnet/csharp/language-reference/operators/null-conditional-operators

2018年10月23日 星期二

[AutoMapper]使用方式

1.使用Nuget 搜尋套件AutoMapper並安裝

2. namespace 加入 using AutoMapper;
3.以下為基本使用方式

  1. var query = db.vw_SchoolStdTotal.ToList();
  2. var config = new MapperConfiguration(cfg => cfg.CreateMap<vw_SchoolStdTotal, SchoolStdTotalDataModel>());
  3. config.AssertConfigurationIsValid();
  4. var mapper = config.CreateMapper();
  5. result = mapper.Map<List<vw_SchoolStdTotal>, List<SchoolStdTotalDataModel>>(query);
  1. var config = new MapperConfiguration(
  2. cfg => cfg.CreateMap<SchoolStdTotalDataModel, vw_SchoolStdTotalViewModel>()
  3. //忽略此欄對應
  4. .ForMember(d => d.SchoolName, o => o.Ignore())
  5. .ForMember(d => d.ProfessionGroupDetailName, o => o.MapFrom(s => s.ProfessionGroupDetailName == null ? "國中部" : s.ProfessionGroupDetailName))
  6. //資料源使用function處理
  7. .ForMember(d => d.Button, o => o.MapFrom(s => dataListButton.ForGetTotalNumberHighSchoolList(desFun.DESEncrypt(s.ID.ToString())))));
更新資料寫法
不需要的欄位使用Ignore排除,關聯Key也要排除不然會出錯
  1. var query = db.PersonalInfo.Where(f => f.ID == ID).FirstOrDefault();
  2. if (query != null)
  3. {
  4. var config = new MapperConfiguration(
  5. cfg => cfg.CreateMap()
  6. .ForMember(d => d.x1, o => o.Ignore())
  7. .ForMember(d => d.x2, o => o.Ignore())
  8. .ForMember(d => d.ModifyDate, o => o.MapFrom(s => DateTime.Now)));
  9. config.AssertConfigurationIsValid();
  10. var mapper = config.CreateMapper();
  11. //PersonalInfo personalInfo = db.PersonalInfo.Find(21);
  12. mapper.Map(viewModel, query);
  13. db.SaveChanges();
  14. }
未完待續.......

參考來源
https://automapper.org/

Visual Studio JS intellisense 失效解決方式

  試了好久,發現到工具>選項>IntelliCode js項目設定啟用,重新開啟VS就正常了! 後來發現是TypeScript3.2版有問題停用,使用4.3版的TypeScript即可