我正在尝试实现一个在中描述的通用存储库
似乎泛型DbSet没有实现AsNoTracking( )方法,我是不是使用了正确的语法?如何解决此问题
public class BaseRepository<TEntity> : IGenericRepository<TEntity>
where TEntity : class
{
private readonly DbContext _dbContext;
public BaseRepository(DbContext dbContext)
{
_dbContext = dbCo
我使用了以下方法很长时间(大约5年):
在控制器中创建一个带有XXXEntities初始化的大类,并使用DB为每个动作创建每个方法。示例:
public class DBRepository
{
private MyEntities _dbContext;
public DBRepository()
{
_dbContext = new MyEntities();
}
public NewsItem NewsItem(int ID)
{
var q = from i in _dbContext.News wher
如果我有
Task<List<SomeTable>> models = _dbContext.SomeTable.ToListAsync();
我现在如何使用First()?
models.First() // Task<List<..>> does not contain a definition for First
给定一个实体和一个DbContext,如下所示:
public class Entity
{
public int Id {get;set;}
public string LargeString {get;set;}
}
public class MyDbContext : DbContext
{
public DbSet<Entity> Entities {get;set;}
}
以及存储在数据库中的实体,其中包含约2 of的Id 42和LargeString。下面的内容大约需要半分钟,偶尔会给OutOfMemoryException
using (va
我正在使用实体框架从数据库中读取一些数据(读取成功),修改实体可以完美地工作,但它不会将更改保存到数据库中。
代码读取了15条记录,但并没有在循环中遍历所有记录。它遍历列表的第一个元素,并在DbContext.SaveChanges()处停止,不保存更改。
你知道我的代码出了什么问题吗?
public async Task LinkCardAsync(postcardContext DbContext)
{
HttpClient cons = new HttpClient();
cons.BaseAddress = new Uri
当将现有的同步方法转换为异步时,我意外地在其中一个方法上使用了“异步空”,这导致了一些意想不到的行为。
下面是我实际执行的更改的简化示例,
public IActionResult Index()
{
var vm = new ViewModel();
try
{
var max = 0;
if (_dbContext.OnlyTable.Any())
{
max = _dbContext.OnlyTable.Max(x => x.SomeColumn);
}
我读过以下文章:
在docs.microsoft的第一篇文章中,我们可以看到以下语句:
如果异步API可用,则异步调用数据访问、I/O和长期运行的操作API。不使用Task.Run使同步API异步.
我不太明白这句话。我对何时何地使用Task.Run以及何时何地编写异步web感到困惑。例如,考虑以下方法:
public int DoSomeHeavyWork()
{
// Consider heavy computations
int i = 10;
i = i * 2;
i = i + 4;
return i;
}
这种方法:
public voi
当我对usermanager中的用户字段进行更改时,我无法通过更新userstore来使这些更改持久保存在用户表中。 我已经尝试过userstore.updateasync、userstore.savechanges等。 Dim dbcontext As New ApplicationDbContext
Dim store1 As New UserStore(Of ApplicationUser)(dbcontext)
Dim manager1 = New UserManager(Of ApplicationUser)(store1)
Dim currentUser = manager1.F
我是EF的新手,所以如果有些事情做得不对,请提前道歉。我很难用EF 6异步地实现分页。
我已经按照本文实现了分页机制:,我认为它是干净的(但也不完美),但是我不能让它异步工作,这是一个问题。
如本文所示,我创建了接口:
public interface IPageList
{
int TotalCount { get; }
int PageCount { get; }
int Page { get; }
int PageSize { get; }
}
我创建了这个类:
public class PageList<T> : List<T>,
简单的问题:我有一个使用EF查询Server数据库的ASP.NET核心应用程序。
客户端调用包装类上的一个方法,该方法调用方法,后者从数据库获取数据。
get数据方法如下所示:
public List<Person> GetPersons(string name)
{
// some logic to decide which table to query, bad design, I know
var list = dbContext.Persons.ToList();
// some more internal logic on the "l
当在两个单独的异步方法中使用EF上下文和调用SaveChangesAsync时,可以在上下文中造成争用条件。如果SaveChangesAsync()可以引起这样的问题,为什么要使用它呢?
-有以下评论。
注:不支持同一上下文实例上的多个活动操作。在此上下文中调用另一个方法之前,请使用“等待”确保任何异步操作都已完成。
public class AccountManager
{
private readonly ApplicationDbContext _dbContext;
public AccountManager(ApplicationDbContext dbCon