如何使用Unity注入我的dbContext类?我不能只为我的其他"普通"类创建一个界面?我应该如何处理RequestContext类以及UnityConfig应该是什么样的?
public class RequestContext : IdentityDbContext<User>
{
public RequestContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
Database.SetInitializer<RequestContext>(new CreateDatabaseIfNotExists<RequestContext>());
}
public DbSet<Request> Requests { get; set; }
public DbSet<Record> Records { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
base.OnModelCreating(modelBuilder);
}
public static RequestContext Create()
{
return new RequestContext();
}
}
Run Code Online (Sandbox Code Playgroud)
在我的Repository类中,我使用它,但是想要注入:
private RequestContext dbContext;
private IUserRepository _userRepository;
public RequestRepository(IUserRepository userRepository)
{
dbContext = new RequestContext();
_userRepository = userRepository;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试在班级中映射以下受保护的集合:
public class AddressList
{
protected readonly IList<Address> addresses = new List<Address>();
}
Run Code Online (Sandbox Code Playgroud)
使用以下映射:
HasMany<Address>(list => Reveal.Member<AddressList>("addresses"));
Run Code Online (Sandbox Code Playgroud)
但是我一直在获取NHibernate.MappingException
NHibernate.MappingException : Could not compile the mapping document:
(XmlDocument) > NHibernate.PropertyNotFoundException
: Could not find a getter for property '**Member**' in class
Run Code Online (Sandbox Code Playgroud)
但是,正如您在Reveal.Member中看到的那样,我要指出它应查找的属性名称应该是“地址”
我发现了这个问题,用户似乎和我有同样的问题,只是一个老问题
我也尝试过这里给出的解决方案