我正在将我的代码从EF迁移到EF核心。我们确实有一个概念。这个概念是由广义理论继承的。
IGenericreposirory
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace DataLayer.Repositories.Base
{
public interface IGenericRepository<T, TKey> where T : class
{
我试图为调用异步存储库的类创建一个单元测试。我正在使用ASP.NET核心和实体框架核心。我的通用存储库如下所示。
public class EntityRepository<TEntity> : IEntityRepository<TEntity> where TEntity : class
{
private readonly SaasDispatcherDbContext _dbContext;
private readonly DbSet<TEntity> _dbSet;
public EntityRepository(Saa
我使用Web C# (.Net Framework4.7.2)中的通用存储库模式,数据库为postgresql.我想使用通用存储库调用数据库视图和存储过程。注意:我不使用EDMX文件。 PostgreSQL视图:CREATE VIEW dashboardreport AS SELECT s.fullname, t.reportid, t.statusid, t.reportingto, t.ispendingapprovel FROM staff s JOIN report t on s.staffid=t.staffid; 通用存储库: public class Repository<
试图找出在使用模式时如何获取最近添加的实体的Id。举个例子就好了。这是储藏室
public class Repository<T> : IRepository<T> where T : class {
protected DbContext DbContext { get; set; }
protected DbSet<T> DbSet { get; set; }
public Repository(DbContext dbContext)
{
if (dbContext == null)
throw new ArgumentN
我正在构建一个web应用程序,使用:MVC5和EF Code First以及Repository和Unit of Work Patterns。到目前为止,我有三层:
“数据层”,它包含存储库,UOW。
“服务层”,为UOW实现业务逻辑和业务验证提供参考。
"Web层“,用于通过与服务层的通信来显示数据。
我的域/业务对象在另一个项目中分离。因此,基本上,除了添加“服务层”之外,我还遵循约翰·帕帕的结构。
Data/Contracts/IRepository.cs
public interface IRepository<T> where T : clas
尝试在.Net核心中编写针对DbContext运行的单元测试。我已经在全框架EF和所有工作中执行了相同的操作。
下面的代码表示重新创建问题所需的最少代码。我已经剔除了所有未实现的内容
我有以下几个模拟
// DbContext
public class MockDbContext : DbContext
{
public virtual DbSet<State> State { get; set; }
}
存储库
// Mock of my repository
public class MockRepository<TModel> : IRepository&
我为我的核心1.0应用程序添加了一个测试项目。其中我有在构造函数中使用dbContext的存储库。
如何在测试项目中访问这个dbContext并正确地注入它?
这是我的ApplicationDbContext课程:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: b
这个问题是关于如何在DbContext核心应用程序中使用EntityFrameworkCore来模拟.NET。下面是我的代码更改:
我的存储库类将使用DbContext与sqlserver通信并获取数据。但是,在向存储库类编写单元测试时,我面临着与模拟DbContext和从DbSet()获取数据有关的问题
MyDbcontext覆盖包含必要的模型相关约束的OnModelCreating(),如下所示。
MyDbContext类:
public partial class myDbContext : DbContext
{
public myDbContext(DbContextOp
我使用的是Entity Framework6,并且我有一个如下所示的存储库,其中删除了Add和Update方法以使其更短:
public class GenericRepository<T> : IRepository<T> where T : class
{
public GenericRepository(DbContext dbContext)
{
if (dbContext == null)
throw new ArgumentNullException("An instance of DbCo
据推测,我有一个简单的DbContext,带有Blog和Post模型:
public class Blog
{
public int BlogId { get; set; }
public string Name { get; set; }
public ICollection<Post> Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string C
我在Azure中查看我的应用程序日志流,查找asp.net核心2 EF核心web应用程序编程接口,并收到以下消息的轰炸 Context 'Context' started tracking 'Model' entity. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see key values. 有没有办法在不关闭代码跟踪的情况下禁用/抑制这些消息? 编辑:来自dbContextClass的代码 public class Context : DbC
我有一个使用EF的ASP.net MVC项目。我创建了实体,也创建了存储库部分。在我的本地主机上,一切都很好,没有任何问题。但是当我把这个项目移到webhost上时,我猜有些地方出了问题。
“当模型正在使用时,无法使用上下文。如果在OnModelCreating方法内部使用上下文,或者如果多个线程同时接受相同的上下文实例,则可能引发created.this异常。请注意,不能保证DbContext和相关类的实例成员是线程安全的。”
并不是每次都是这样,但有时当我尝试连接我的网站时,我会收到这个错误。
这是我的Repository.cs
public class Repository<T&g
我尝试按照的描述,在我的ASP.NET MVC应用程序中实现工作单元和存储库模式。
我收到以下错误:
Value cannot be null.
Parameter name: entitySet
在查询过程中。在进行了一些调试之后,我注意到我的DBSet<T>类抛出了以下错误:
{
"The context cannot be used while the model is being created. This exception may be
thrown if the context is used inside the OnModelCreatin
我的存储库如下所示:
public class SqlRepository<T> : IRepository<T> where T : class
{
private ExchangeSiteContext _dbContext;
private DbSet<T> _dbSet;
#region [Constructor]
public SqlRepository(ExchangeSiteContext context)
{
_dbContext = context;
_dbSet =
我计划使用Entity Framework6 (Code First / POCO)开发一个使用ASP.NET MVC的web应用程序。我还想在我的应用程序中使用通用存储库和工作单元模式。这个应用程序连接到两个以上的数据库,所以我必须在应用程序中使用多个DbContext。
public class ContextOne : DbContext
{
public DbSet<Model_One1>
public DbSet<Model_One2>
}
public class ContextTwo : DbContext
{
public Db
在我的.NET核心项目中,我有两个具有多到多个关系的实体:
书籍:
public class Book
{
[Key]
public int BookId { get; set; }
public string Name { get; set; }
public string AuthorName { get; set; }
public int YearOfPublishing { get; set; }
public LibraryType Type { get; set; }
public virtual ICollection&
Net核心和EF核心数据库优先的方法。我有一个表,它的Id是主键,还有一个国家名是非主键。我想查询国家名称,我不会传递主键。下面是我的实现。 IBaseRepository.cs public interface IBaseRepository<T>
{
async Task<T> GetCountryByNameAsync(string country)
} BaseRepository.cs public class BaseRepository<T>: IBaseRepository<T>
where T : cl
我正在使用实体框架6.0与代码优先的方法和单位的工作模式。我希望动态地构建连接字符串,并从数据库中获取数据。如果我有连接字符串的web.config标记,数据库连接就能正常工作。但是,我不希望有一个连接字符串的web.config标记。我看到了许多与此相关的问题,但我没有发现与codefirst方法有关的问题。请让我知道如何做到这一点。
-------------------- Repository.cs --------------------
using System;
using System.Collections.Generic;
using System.Linq;
using
我正在使用EF核心6和.NET 6。
我已经将延迟加载添加到我的ASP.NET Web中,我希望通过在属性上使用JsonIgnore注释来防止属性被序列化。
原因是我希望通过Guid管理实体中的引用,而不是实体本身。例如,当为一个实体执行GET HTTP请求时,对其他实体的引用将作为ids返回。但是,在下面的代码中,我有NotMapped属性UserRoleIds,而下面是存储在数据库中的UserRoles的实际列表。但是,当对一个实体执行GET请求时,将返回UserRoleIds和UserRoles。
我有两个实体类:
public class User
{
[Key]
pu
我正在尝试构建一个简单的基于ASP.NET核心6的web。我首先遵循微软的最小web教程,它可以工作。然后,我使用作为指南,使用导航属性添加了自己的数据模型,但当我执行查询时,属性为null。
这是我的模型:
public class Author {
public int Id { get; set; }
public string Name { get; set; }
public List<Book> Books { get; set; }
}
public class Book {
public int Id { get; set; }
public
我试图用NSubstitute模拟我的DbContext类进行单元测试,但是我不能通过repository类从我的假dbcontext中恢复这些数据。 我有一个泛型类(SubstituteDbContext)来创建sobe DbSet,并将它们设置为我的DbContext中各自的DbSet属性。 对于要模拟的DbContext中的每个属性,我都有以下代码: var data = DbSetData.MyData();
var dbSet = SubstituteDbContext.DbSet(data);
dbContext.MyObject.Returns(dbSet); 我用下面的方法为