2017年7月29日 星期六

C# Entity Framework,Code First ,欄位屬性 

因為某些原因所以寫篇文章

上篇我提到使用Entity Framework去抓取pgSQL
也提到我參考一篇 code first的文章去做
後來實務上需要新增資料表,所以我決定玩玩看code first的作法


2017年7月18日 星期二

C#.NET 使用Entity Framework讀取pgSQL(PostgreSQL)


昨天剛換了新工作
剛上任就碰到了些問題

新公司這邊使用.NET MVC5,可是資料庫使用PostgreSQL(後面稱pgSQL)
.NET預設無法對pgSQL做操作,所以這案子前面寫的人使用JAVA的模式,把SQL指令存在XML,然後再對SQL操作

可是怎麼辦,我已經變成不使用EF會死星人了!!
只好來研究一下怎麼處理



2017年5月25日 星期四

在IE底下使用中文傳遞參數,無法邊碼

前幾天發生了一個很妙的事

參考:http://blog.kkbruce.net/2014/09/ie11-pass-unicode-querystring-with-aspnet-mvc-http502.html#.WSanqut95QI

大概簡述一下
就是使用GET傳遞參數的時後,"?name=微軟"這段參數
在chrome或firefox都沒問題,但是在ie的話,中文會讀取錯誤

今天又發生類似的問題
可是是在mvc的一個area底下
http://aaa.bbb/{area}/{controller}/{action}?name=微軟

很好,這次我吃不到參數了
研究了一下發現,在開AREA的時後有個route設定的cs把參數名稱預設為id了

    context.MapRoute(
        "AreaName_default",
        "AreaName/{controller}/{action}/{id}",
        new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );

當然,我第一個想法就是把ID拿掉

    context.MapRoute(
        "AreaName_default",
        "AreaName/{controller}/{action}/",
        new { controller = "Home", action = "Index" }
    );

很好,它回給我404,連參數都不給傳了


好吧
我放棄,我直接把參數名稱改稱ID

[GET("AreaName/{controller}/{action}/{id}")]

哦哦哦哦,它終於可以動了
真讓人感動!

不是我在說,微軟你不要婊自己的東西好嗎,很麻煩內

2017年2月15日 星期三

在.NET4.X底下包2.0的網站應用程式

因為工作上有特殊需求
我需要在一個.NET 4.X MVC應用程式底下在包一個2.0的網站應用程式

像下圖這樣



那我需要怎麼處理呢?
我參考了OverStack這篇的解決方式

在外層的Web.config裡面的system.web的標簽,多加一個標簽把它包起來就可以了
<location path="." inheritInChildApplications="false">
<system.web>
 ...
</system.web>
</location>
就像這樣
特此紀錄一下