狀況是這樣,我有一個舊的網站是用 asp+mssql 做的,最近想學 net mvc,所以想用舊的網站來實做練習。
買的書上教學的大多是用 entity, 但是只能用 linq, 我還是想用 tsql 來做資料庫的存取,不用在重頭學起, 所以好像只能使用 ado.net 來連線。
但實做後發現, entity 在 vs2019 可以讀取既有資料庫的欄位來自動的建立對應的 models 很方便,想請問 ado.net 有類似的方法嗎?
會這樣問是因為目前的主資料表裡欄位可能都有好幾十個,看看有沒有比較方便的方式或工具可以讀取資料表的欄位來自動建立 ado.net 可以使用的 models
還是 ado.net 也可以使用 entity 建立起來的 models?
我從 asp 轉來 mvc, 本來對資料庫存取就是兩三行的事, 現在在 mvc 中似乎要先開資料庫把資料讀出在 models 內,然後在 controller 中對資料動作後轉送給 view(這個流程對嗎?)
看了兩本書, 大多還是著墨在 LINQ+Entity Framework 較多,一本沒提 ado.net, 一本稍微帶過, 所以想照抄來練習都很困難
如果想做個簡單的查詢(沒分頁)
models的cs是建立模型+開資料庫
controller是轉送models給view
view用@foreach(var item in model)來讀出嗎
先謝謝各位耐心看完, 謝謝
ADO.NET 這邊 有一些範例
還是 ado.net 也可以使用 entity 建立起來的 models?
這當然可以,
只不過你就不能用Entity直接更新資料的方式.
在 mvc 中似乎要先開資料庫把資料讀出在 models 內
沒人說你一定要存在Models內,
你也可以用SqlDataAdapter存進DataTable裡面.
大多還是著墨在 LINQ+Entity Framework 較多
因為這樣比較好寫書...
不過我沒有在用Entity,
除非是接別人舊的專案...
models的cs是建立模型+開資料庫
這一行看不懂...
controller是轉送models給view
view用@foreach(var item in model)來讀出嗎
看起來是沒錯,
不過看你怎麼寫...
models的cs是建立模型+開資料庫
就是
建一個 class
下面開 db 把資料塞進 array?
c = new class();
c.name = reader[0];
類似這樣?
這樣也可以,
你可以先寫看看,
有問題先問Google,
真的問不到再上來問...
我現在遇到的問題就是在建 class的時候發現欄位太多了..要一個一個寫
public string column1 { get; set; }
public string column2 { get; set; }
public string column3 { get; set; }
.....
這樣寫下去有點太笨了..所以才想說有沒有甚麼可以自動讀出 db裡的欄位自動建立 class哈哈
你不是說了嗎?
用Entity建吧,
不過你要先在資料庫建好結構.
如果你用SQL Server的話, 我以前寫過一個預存程序, 從資料表建立C#的model class
你參考看看(以前寫ASP.NET MVC時懶得自己寫model class, 就弄這個了, 2015年時的)
最初的原形是2007年的這個, 當時懶得寫SQL語法, 就參考當時同事的作法弄了這個
http://www.player.idv.tw/prog/index.php/MyTable2SQL.sql