日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
EFORM技巧:強(qiáng)制從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)(ef強(qiáng)制從數(shù)據(jù)庫(kù)獲取)

Entity Framework (EF) 是一個(gè)用于 .NET 開(kāi)發(fā)的 ORM 框架,其更大的優(yōu)勢(shì)之一是具有極其靈活的查詢和數(shù)據(jù)操作能力。但是,有時(shí)候我們需要強(qiáng)制從數(shù)據(jù)庫(kù)中獲取一個(gè)數(shù)據(jù)而不使用緩存。這在 EF 中應(yīng)該如何實(shí)現(xiàn)呢?

網(wǎng)站的建設(shè)成都創(chuàng)新互聯(lián)公司專注網(wǎng)站定制,經(jīng)驗(yàn)豐富,不做模板,主營(yíng)網(wǎng)站定制開(kāi)發(fā).小程序定制開(kāi)發(fā),H5頁(yè)面制作!給你煥然一新的設(shè)計(jì)體驗(yàn)!已為成都石雕等企業(yè)提供專業(yè)服務(wù)。

現(xiàn)在,我們假設(shè)有一個(gè)簡(jiǎn)單的示例,其中包含兩個(gè)實(shí)體類:Customer 和 Order。Customer 包含一個(gè)訂單 OrderList:

“`csharp

public class Customer

{

public int Id { get; set; }

public string Name { get; set; }

public ICollection OrderList { get; set; }

}

public class Order

{

public int Id { get; set; }

public DateTime OrderDate { get; set; }

public int CustomerId { get; set; }

public Customer Customer { get; set; }

}

“`

在這個(gè)示例中,我們有一個(gè)指向 Customer 實(shí)體的導(dǎo)航屬性,稱為 OrderList。

如果我們以以下方式獲取 OrderList,即通過(guò) Customer 實(shí)例調(diào)用這個(gè)屬性:

“`csharp

var customer = dbContext.Customers.FirstOrDefault(c => c.Id == 1);

var orders = customer.OrderList;

“`

EF 默認(rèn)會(huì)從數(shù)據(jù)庫(kù)中加載 Customer,并在之一次訪問(wèn)其 OrderList 屬性時(shí)對(duì)其進(jìn)行延遲加載。

但是,該緩存可能會(huì)導(dǎo)致問(wèn)題。例如,在一個(gè)線程中修改了一個(gè)訂單,而在另一個(gè)線程中卻查看了相同客戶的訂單列表,此時(shí)你可能會(huì)看到舊數(shù)據(jù)而不是更新后的內(nèi)容。為了避免此類問(wèn)題,可以通過(guò)以下方式強(qiáng)制從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù):

“`csharp

var customer = dbContext.Customers

.Include(c => c.OrderList)

.AsNoTracking()

.FirstOrDefault(c => c.Id == 1);

var orders = customer.OrderList.ToList();

“`

此處使用的 AsNoTracking() 方法告訴 EF 不要跟蹤這個(gè)對(duì)象。而 Include() 方法指示 EF 裝載 OrderList 屬性的數(shù)據(jù)。通過(guò)調(diào)用 ToList(),我們可以確保此時(shí) EF 將從數(shù)據(jù)庫(kù)中獲取 OrderList 而不是從緩存中獲取它。

如果想要避免出現(xiàn) bug,或者出于其他安全或性能考慮,我們強(qiáng)烈建議您在類似上述代碼的 EF 查詢中使用該方法。

相關(guān)問(wèn)題拓展閱讀:

  • jsp中下拉框中的值從數(shù)據(jù)庫(kù)中動(dòng)態(tài)獲取
  • ef查詢是在內(nèi)存中過(guò)濾還是從數(shù)據(jù)庫(kù)過(guò)濾

jsp中下拉框中的值從數(shù)據(jù)庫(kù)中動(dòng)態(tài)獲取

我的采用的漏賀是javabena+jsp

一個(gè)javabean

public ArrayList selectCourseInfo()throws Exception {//下拉框顯察神示課程信息

ArrayList list = new ArrayList();

try {

db.open();

ResultSet rs = db.select(“select * from CourseInfo”);

while (rs.next()) {

list.add(new CourseInfo(rs.getInt(1), rs.getString(2),rs.getString(3)));

}

} catch (Exception e) {

e.printStackTrace();

} finally {

db.close();

}

return list;

}

然后在jsp中調(diào)用

課 程:

這樣就可以動(dòng)態(tài)的顯示了

jsp中把數(shù)據(jù)庫(kù)全量查詢后填充select列表:

舉例說(shuō)明:

入學(xué)批次: //選擇入學(xué)批次會(huì)刷新層次和專業(yè)

請(qǐng)選擇–

${gradeInfo.gradeName}

統(tǒng)考課程:

請(qǐng)選擇侍喚氏–

${uniExamCourse.uniExamCourseName}

//設(shè)置ID,用于填充層次鏈中和專業(yè)的下拉框

層次: //選擇層次后刷新專業(yè)

請(qǐng)選擇–

${educationLevel.educationLevelName}

專業(yè):

請(qǐng)選擇–

老散${special.specialName}

java后臺(tái)通過(guò)dao接口獲取specialList的值,并且保存到session即可。

jsp中把數(shù)據(jù)庫(kù)全量查詢后填充select列表:

舉例說(shuō)明:

入學(xué)批次:

//選擇入學(xué)批次會(huì)刷新層次和專業(yè)

–請(qǐng)選擇–

${gradeInfo.gradeName}

統(tǒng)考課程:

–請(qǐng)選擇–

${uniExamCourse.uniExamCourseName}

//設(shè)置ID,用于填充層次和專業(yè)的下拉框

次:

//選擇層次后刷新專業(yè)

–請(qǐng)選擇–

${educationLevel.educationLevelName}

業(yè):

–請(qǐng)選擇–

${special.specialName}

java后臺(tái)通過(guò)dao接口獲取specialList的值,并且保存到session即可。

用struts,

或者ajax,

再或者你用js吧。

普通的循環(huán)應(yīng)該也可以。

但你的要求我感覺(jué)滾絕struts標(biāo)簽是更好的.

========================================

你或胡的數(shù)據(jù)是一個(gè)javabean的list(大團(tuán)姿)嗎?

我的采用的是javabena+jsp

一個(gè)javabean

public

ArrayList

selectCourseInfo()throws

Exception

{//下拉框顯示課程信息

ArrayList

list

=

new

ArrayList();

try

{

db.open();

ResultSet

rs

=

db.select(“select

*

from

CourseInfo”);

while

(rs.next())

{

list.add(new

CourseInfo(rs.getInt(1),

rs.getString(2),rs.getString(3)));

}

}

catch

(Exception

e)

{

e.printStackTrace();

}

finally

{

db.close();

}

return

list;

}

然后在jsp中調(diào)用

程:

這樣就可以動(dòng)態(tài)的顯示了

ef查詢是在內(nèi)存中過(guò)濾還是從數(shù)據(jù)庫(kù)過(guò)濾

看你的意思是大量的、基礎(chǔ)的數(shù)據(jù),那應(yīng)該是經(jīng)常用到的,且變盯擾化不大的數(shù)據(jù)。這些數(shù)據(jù)還是放在內(nèi)存中比較好,訪問(wèn)起來(lái)快而且拍爛不需要經(jīng)常連數(shù)據(jù)庫(kù)襲則漏。

關(guān)于ef 強(qiáng)制從數(shù)據(jù)庫(kù)獲取的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開(kāi)發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動(dòng)、聯(lián)通機(jī)房等。


當(dāng)前文章:EFORM技巧:強(qiáng)制從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)(ef強(qiáng)制從數(shù)據(jù)庫(kù)獲取)
網(wǎng)站地址:http://m.5511xx.com/article/cdgeocj.html