[英]Using multiple connection strings for the same DBContext in EntityFramework
[英]EntityFramework DBContext FirstOrDefault closes connection
我有點像junio程序員,所以我需要理解這一點。 我正在使用EntityFramework 5.我們實現了一個存儲庫類,它繼承了DbContext。 調用FirstOrDefault方法時,如果沒有要返回的值,EntityFramework將關閉連接。 這使得代碼制動,抱怨dbContext.Database.Connection.ServerVersion為null。 事實上,連接狀態是“已關閉”。 我實際上是在不使用Ninject之類的情況下注入存儲庫來測試服務。 這是為什么會發生這種情況?
這是我注入存儲庫的地方:
IRepository<stock_queues> repo = new DbContextRepositoryEcom<stock_queues>(new DbContextFactory<eComEntities>(new eComEntities()));
StockFlashService service = new StockFlashService(repo, new PartsService(), new UserService());
service.AddToStockFlashQueue("asfsdfgvsdf");
這是我實際運行代碼的地方(在不同的項目中):
public StockFlashService(IRepository<stock_queues> queues, IPartsService parts, IUserService users)
{
this._QueuesRepo = queues;
this._PartsService = parts;
_UsersService = users;
// userId = _UsersService.GetUser().UserId;
userId = 30; //FOR TESTING ONLY !!
}
public void AddToStockFlashQueue(string key)
{
stock_queues sq = new stock_queues();
sq.partnumber = key;
sq.userID = userId;
sq.timestamp = DateTime.Now;
// Adds new entry to Stock Flash queue (if required)
stock_queues part;
int count = _QueuesRepo.Count();
if (_QueuesRepo.Count() > 0)
{
part = _QueuesRepo.FirstOrDefault(f => f.userID == sq.userID && f.partnumber == sq.partnumber); // THIS IS WERE IT ALL BRAKES
}
}
我正在使用控制台應用程序來測試服務並注入依賴項。 該項目是這個服務托管(不是一個Windows / Web服務,但實際上所有神奇的邏輯)是一個MVC應用程序。
當沒有值時,FirstorDefault返回null - 就像你的情況一樣。 首先檢查null,然后將其分配給'part'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.