C#在Entity Framework中實(shí)現(xiàn)事務(wù)回滾
在使用Entity Framework為主從表添加數(shù)據(jù),當(dāng)一個(gè)表添加數(shù)據(jù)成功,另一個(gè)表添加數(shù)據(jù)失敗,這時(shí)候就需要用到事務(wù)回滾。
比如有以下關(guān)系的2張表。

客戶(hù)端使用TransactionScope類(lèi)可以實(shí)現(xiàn)事務(wù)回滾。
class Program
{
static void Main(string[] args)
{
try
{
using (TransactionScope ts = new TransactionScope())
{
using (CountryDetailsEntities db = new CountryDetailsEntities())
{
Country country = new Country();
country.CountryName = "USA";
db.Countries.Add(country);
db.SaveChanges();
if (country.CountryID > 0)
{
int a = 0;
int total = 10 / a;
State state = new State();
state.CountryID = country.CountryID;
state.StateName = "NewYork";
db.States.Add(state);
db.SaveChanges();
}
}
ts.Complete();
}
}
catch (Exception ex)
{
throw;
}
}
}以上,在添加State表數(shù)據(jù)的時(shí)候,模擬了一個(gè)異常,通過(guò)斷點(diǎn)調(diào)試執(zhí)行完畢,發(fā)現(xiàn)數(shù)據(jù)庫(kù)中沒(méi)有增加任何數(shù)據(jù)。
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- C#中Entity Framework常見(jiàn)報(bào)錯(cuò)匯總
- c# 使用Entity Framework操作Access數(shù)據(jù)庫(kù)的示例
- C# Entity Framework中的IQueryable和IQueryProvider詳解
- Entity?Framework配置關(guān)系
- Entity Framework主從表數(shù)據(jù)加載方式
- Entity?Framework代碼優(yōu)先(Code?First)模式
- Entity?Framework使用ObjectContext類(lèi)
- Entity?Framework導(dǎo)航屬性介紹
相關(guān)文章
C#利用RabbitMQ實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)消息傳輸
RabbitMQ做為消息代理,負(fù)責(zé)接收和轉(zhuǎn)發(fā)消息,可以將RabbitMQ比喻為一個(gè)郵筒、一個(gè)郵局和一個(gè)郵遞員。本文主要以一個(gè)簡(jiǎn)單的小例子,簡(jiǎn)述RabbitMQ實(shí)現(xiàn)消息傳輸?shù)南嚓P(guān)內(nèi)容,僅供學(xué)習(xí)分享使用,如有不足之處,還請(qǐng)指正。2021-05-05
C# TextBox控件實(shí)現(xiàn)只能輸入數(shù)字的方法
這篇文章主要介紹了C# TextBox控件實(shí)現(xiàn)只能輸入數(shù)字的方法,本文使用TextBox的keypress事件實(shí)現(xiàn)這個(gè)需求,需要的朋友可以參考下2015-06-06
C#編寫(xiě)的藝術(shù)字類(lèi)實(shí)例代碼
本文給大家分享使用純C#編寫(xiě)的藝術(shù)字類(lèi)實(shí)例代碼,代碼簡(jiǎn)單易懂,需要的朋友參考下本教程2016-03-03

