TIA复制连接到实体框架
完全披露一个统一类 - 我是新的ASP.NET Web开发和我仍然在学习一些框架和它的相互作用。我会尽力在这里保护我的陈述,并确定那些我不确定我是否正确使用的陈述。
我正在使用我下载的一个开源软件包,名为BeYourMarket,我在那里有一个有服务的付款控制器。我不确定这到底意味着什么,但我相信它与Unity有关?此服务似乎控制网站上的订单相关项目。它连接到整个网站正在使用的数据库中的表格。我相信实体框架为此提供了渠道。
这里是我想要复制的代码片段,而不是它管理的订单这个重复将管理令牌订单。椭圆是我显示中间有代码的方式。
我怀疑这里有一些我根本不理解的东西。
以下是控制器,你可以看到我复制了OrderService
PaymentController.cs
{
[Authorize]
public class PaymentController : Controller
{
...
private readonly IOrderService _orderService;
private readonly IOrderServiceToken _orderServiceToken;
...
}
public PaymentController(
...
IOrderService orderService,
IOrderServiceToken orderServiceToken,)
{
...
_orderService = orderService;
_orderServiceToken = orderServiceToken;
...
}
}
下面是我从
BeYourMarket.Service \ OrderService.cs
public interface IOrderService : IService<Order>
{
}
public class OrderService : Service<Order>, IOrderService
{
public OrderService(IRepositoryAsync<Order> repository)
: base(repository)
{
}
}
创建重复的文件/班
BeYourMarket.Models \ Models \ Order.cs
{
public partial class Order : Repository.Pattern.Ef6.Entity
{
public Order()
{
this.ListingReviews = new List<ListingReview>();
}
...
public int DataBaseVariable { get; set; }
...
}
}
BeYourMarket.Model \型号\制图\ OrderMap.cs
public class OrderMap : EntityTypeConfiguration<Order>
{
public OrderMap()
{
// Primary Key
this.HasKey(t => t.ID);
// Properties
...
this.Property(t => t.PaymentPlugin)
.HasMaxLength(250);
// Table & Column Mappings
this.ToTable("Orders");
...
this.Property(t => t.ID).HasColumnName("ID");
...
}
}
}
这可能是值得指出的是,下面我DbSet永远不会跑了。也许我需要做一些其他初始设置,当我第一次启动这个软件包时运行。我不知道如何再次运行这个“设置”。
BeYourMarket.Model \型号\ BeYourMarketContext.cs
public BeYourMarket()
: base("Name=DefaultConnection")
{
}
...
public DbSet<Order> Orders { get; set; }
public DbSet<OrderToken> OrderToken { get; set; }
...
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new OrderMap());
modelBuilder.Configurations.Add(new OrderTokenMap());
}
BeYourMarket.Service \ DataCacheService.cs
public class DataCacheService
{
...
private IOrderService OrderService
{
get { return _container.Resolve<IOrderService>(); }
}
private IOrderServiceToken OrderServiceToken
{
get { return _container.Resolve<IOrderServiceToken>(); }
}
...
}
以下附件是错误,我得到的图像。如果我将OrderSErviceToken.cs
中的<OrderToken>
类替换为任何其他已创建的数据库,例如<Order>
一切正常。它与我手动创建所有这些和缺少一些链接或注册有关。
感谢您阅读,如果你能够通过它这种坚持很长。
克里斯