日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

使用SubSonic生成数据访问层步骤

發(fā)布時(shí)間:2023/12/31 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用SubSonic生成数据访问层步骤 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用SubSonic生成數(shù)據(jù)訪(fǎng)問(wèn)層步驟

SubSonic(http://subsonicproject.com/)是一個(gè)ORM框架,或者說(shuō)是一個(gè)代碼生成器,它的工作流程和一般的ORM工具不同,所有的工作全是自動(dòng)完成,生成完整的數(shù)據(jù)訪(fǎng)問(wèn)層類(lèi)庫(kù),然后在工程中引用即可使用。整個(gè)過(guò)程很簡(jiǎn)單,下面就生成數(shù)據(jù)訪(fǎng)問(wèn)層類(lèi)庫(kù)的過(guò)程記錄如下:
??? 1
、建立一個(gè)c#類(lèi)庫(kù)工程
??? 2
、刪除默認(rèn)生成的class1.cs文件
??? 3
、工程添加三個(gè)引用,SubSonic.dll(前提是先安裝了subsonic才會(huì)有這個(gè))、?

System.WebSystem.Configuration命名空間
??? 4
、在工程下建立一個(gè)文件夾,Generated

5、在工程中添加一個(gè)新文本文件,命名為:app.config,內(nèi)容如下:

?

<?xml version="1.0"?>

<configuration>

?

? <!-- 第一部分是照著寫(xiě)就可以了,沒(méi)有什么好說(shuō)的 -->

? <configSections>

??? <section name="SubSonicService" type="SubSonic.SubSonicSection, SubSonic" requirePermission="false"/>

? </configSections>

?

? <!-- 第二部分是定義一個(gè)或者多個(gè)連接數(shù)據(jù)庫(kù)的字符串,其中要注意的是這部分的name的值是第三部分connectionStringName屬性的值-->

? <connectionStrings>

??? <!-- 連接數(shù)據(jù)庫(kù)的字符串 -->

??? <add name="Nowthwin"

???????? connectionString="Data Source=.;Initial Catalog=BuySaleStorage;Persist Security Info=True;User ID=sa;"/>

? </connectionStrings>

?

? <!-- 第三部分是將連接字符串和數(shù)據(jù)庫(kù)驅(qū)動(dòng)匹配起來(lái)成為一個(gè)連接。name是連接的名字,generatedNamespace的值是生成對(duì)象的命名空間-->

? <SubSonicService defaultProvider="Nowthwin">

??? <providers>

????? <clear/>

????? <add name="Nowthwin"

?????????? type="SubSonic.SqlDataProvider, SubSonic"

?????????? connectionStringName="Nowthwin"

?????????? generatedNamespace="Nowthwin"/>

??? </providers>

? </SubSonicService>

?

</configuration>
??? 4
、在vs中工具菜單中選擇 工具” -> “外部工具命令,定義一個(gè)外部工具菜單項(xiàng),

?????????? 標(biāo)題為SubSonic DAL(也可以自己命名),

命令為SubSonic文件夾的中命令行工具sonic.exe的路徑,

參數(shù)為:generate /out Generated生成后的路徑為當(dāng)前路徑下的Generated文件夾。),

初始目錄為:$(ProjectDir)

并勾選使用命令窗口提示輸入?yún)?shù)兩個(gè)選項(xiàng),點(diǎn)確定。
???

?5、此時(shí)vs的工具菜單多了一項(xiàng)“SubSonic DAL命令,單擊,然后確定。
??? 6
、執(zhí)行完畢,在Generated文件夾中會(huì)生成你設(shè)定的數(shù)據(jù)庫(kù)的類(lèi)庫(kù)文件,包括表、視圖、存儲(chǔ)過(guò)程的c#包裝。如果出現(xiàn)錯(cuò)誤,一般是因?yàn)閿?shù)據(jù)庫(kù)連接串有問(wèn)題,請(qǐng)仔細(xì)檢查。
??? 7
、把Generated文件夾下的所有文件包含到工程中,然后編譯,生成類(lèi)庫(kù)。至此,全部工作完成,可以在項(xiàng)目中使用ORM操作您的數(shù)據(jù)庫(kù)了,完全強(qiáng)類(lèi)型化的數(shù)據(jù)庫(kù)操作方法。
??? 8
、在項(xiàng)目中使用這個(gè)類(lèi)庫(kù)的時(shí)候,需要在web.config中把上面的app.config中的設(shè)置,復(fù)制到對(duì)應(yīng)的小節(jié)中。
??? 9
、數(shù)據(jù)庫(kù)修改后,只要重新生成一次類(lèi)庫(kù)即可,這可能就是所謂的零數(shù)據(jù)訪(fǎng)問(wèn)層代碼實(shí)現(xiàn)吧,總之是非常方便。
??

?

Northwind數(shù)據(jù)庫(kù)為例

?

/聯(lián)合查詢(xún)

DataTable dt = new Select(Product.Columns.ProductName, Category.Columns.CategoryName,Supplier.Columns.CompanyName).From(Product.Schema).InnerJoin(Category.Schema).InnerJoin(Supplier.Schema).ExecuteDataSet().Tables[0];

?

______________________________________________________________________________

//子查詢(xún)

DataSet dt = new Select().From(Product.Schema)

??? .Where("productid").In(1, 2, 3, 4, 5)ExeCuteDataSet();

?

DataSet dt = new Select().From(Product.Schema).Where(Product.Columns.CategoryID)

??????????? .In(

??????????? new Select("categoryID").From(Category.Schema).Where(Category.Columns.CategoryName).IsEqualTo("Produce"))

??????????? .ExecuteDataSet() ;

______________________________________________________________________________________________

//聚合函數(shù)使用

?

double result = new

??? Select(Aggregate.Sum("UnitPrice*Quantity", "ProductSales"))

??? .From(OrderDetail.Schema)

??? .ExecuteScalar<double>();

____________________________

總結(jié)

以上是生活随笔為你收集整理的使用SubSonic生成数据访问层步骤的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。