我遇到了问题,我会在多种方法中使用相同的dbContext,例如:
public class Communication
{
public Response AddCommunication(Commnucation myComm)
{
using(MYDB dbContenxt = new MYDB())
{
DBCOMMUNICATION dbComm = new DBCOMMUNICATION
{
ID = myComm.Id,
NAME = myComm.Name,
SUBJECT = myComm.Subject,
MESSAGE = myComm.Message
};
if(myComm.Images != null && myComm.Images.Count > 0)
{
foreach(var image in Images)
{
IMAGES dbImages = new IMAGES
{
ID_COMMUNICATION = myComm.Id,
NAME = image.Name,
VALUE = image.Value
};
dbContext.IMAGES.add(dbImages);
}
}
if(myComm.Attachments != null && myComm.Attachments.Count > 0)
{
foreach(var image in Images)
{
same work .......
}
}
dbContext.SaveChanges();
}
.......
.......
}
}
我会提取使用foreach循环的方法,例如:
if(myComm.Images != null && myComm.Images.Count > 0)
{
AddImages(myComm);
}
在AddImages方法中,我将使用相同的dbContext进行添加,但仅在AddCommunication中使用SaveChanges。 这是最好的做法?对dbContext使用Singleton模式?请帮我。谢谢,抱歉我的英语不好。
答案 0 :(得分:0)
将dbContext传递给新方法
if(myComm.Images != null && myComm.Images.Count > 0)
{
AddImages(dbContext, myComm);
}
...
private void AddImages(MYDB dbContext,Commnucation myComm)
{
...
}