当前位置: 首页 > news >正文

discuz可以做商城网站吗北京学生做兼职的网站

discuz可以做商城网站吗,北京学生做兼职的网站,房产微信营销方案,赤峰做网站的公司【导读】如果我们存在基础设施服务和其他服务#xff0c;我们会定义属于基础设施服务的上下文以及其他服务的上下文#xff0c; 而且会独立部署#xff0c;此时其他服务需要使用基础服务#xff0c;我们都会暴露基础服务接口给到其他服务调用#xff0c;这也是常规操作若在…【导读】如果我们存在基础设施服务和其他服务我们会定义属于基础设施服务的上下文以及其他服务的上下文 而且会独立部署此时其他服务需要使用基础服务我们都会暴露基础服务接口给到其他服务调用这也是常规操作若在项目较小的情况下且仅内部调用等等为免去重新定义基础设施服务上下文以及模型等等我们大可以将基础设施服务上下文打成nuget包形式或项目引用方式等等然后其他服务上下文继承基础设施上下文如此这般我们就可以操作基础设施模型那么我们应该怎么做呢实现上下文继承我们从头开讲比如我们定义其他服务上下文以及模型等等public class TestDbContext : DbContext {public TestDbContext(DbContextOptionsTestDbContext options) : base(options){}public DbSetTest Tests { get; set; } }[Table(tests)] public class Test {[Column(id)]public int Id { get; set; }[Column(name)]public string Name { get; set; } }接下来我们使用控制台程序注入上下文并查询表数据最基本操作无需我多言static void Main(string[] args) {var services  new ServiceCollection();services.AddDbContextTestDbContext(options {options.UseSqlServer(Data Source.;Initial CatalogEFCore;User IDsa;Passwordsa123;);});var serviceProvider  services.BuildServiceProvider();var context  serviceProvider.GetRequiredServiceTestDbContext();var result  JsonConvert.SerializeObject(context.Tests.ToList()); }此时上述服务上下文需要调用基础服务上下文我们该怎么办呢先定义好基础服务上下文public class BaseDbContext : DbContext {public BaseDbContext(DbContextOptionsBaseDbContext options) : base(options){}public DbSetUser Users { get; set; } }[Table(users)] public class User {[Column(id)]public int Id { get; set; }[Column(name)]public string Name { get; set; }[Column(birthdate)]public DateTime BirthDate { get; set; }[Column(address)]public string Address { get; set; } }接下来我们将其他服务上下文TestDbContext继承自上述基础服务上下文public class TestDbContext : BaseDbContext {public TestDbContext(DbContextOptionsTestDbContext options) : base(options){}......   }此时编译会报CS1503错误无法将TestDbContext转换为BaseContext因为构造函数参数不匹配我们知道DbContextOptions是DbContextOptionsT父类所以我们只需在BaseDbContext新增一个构造函数即可public class BaseDbContext : DbContext {public BaseDbContext(DbContextOptionsBaseDbContext options) : base(options){}public BaseDbContext(DbContextOptions options) : base(options){}...... }这样一来我们则可以操作基础服务上下文中的模型如下var context  serviceProvider.GetRequiredServiceTestDbContext();var result  JsonConvert.SerializeObject(context.Users.ToList());我们到这里是不是就大功告成了呢当然没有若此时通过基础服务上下文直接操作我们发现会抛出如下异常啥意思呢根据大致意思来看就是说上下文构造函数有问题所以无法激活创建上下文那么根本原因在哪里呢这个问题其实在此前博文有讲解 甩出源码如下private static FuncTContext CreateActivator(DbContextOptions options) {var constructors typeof(TContext).GetTypeInfo().DeclaredConstructors.Where(c  !c.IsStatic  c.IsPublic).ToArray();if (constructors.Length  1){var parameters  constructors[0].GetParameters();if (parameters.Length  1 (parameters[0].ParameterType  typeof(DbContextOptions)|| parameters[0].ParameterType  typeof(DbContextOptionsTContext))){returnExpression.LambdaFuncTContext(Expression.New(constructors[0], Expression.Constant(options))).Compile();}}return null; }首先获取上下文中声明的构造函数过滤掉了静态和公共且上下文必须有且只能有一个显式构造函数且参数只能为DbContextOptionsT我们恍然大悟将新增的构造函数访问修饰符修改为受保护的protected即可public class BaseDbContext : DbContext {public BaseDbContext(DbContextOptionsBaseDbContext options) : base(options){}protected BaseDbContext(DbContextOptions options) : base(options){}...... }哦没啥可总结的勒这玩意只能根据经验猜或者看源码可得知再会
http://www.pierceye.com/news/814885/

相关文章:

  • 网站搭建上海wordpress主题范例
  • 网站内容建设出现的问题马鞍山人才网
  • 上海正规做网站公司电话演示 又一个wordpress站点
  • 建设银行网站特色完整网站开发视频教程
  • 株洲做网站渠道电话设计师培训生招聘
  • 四川阿坝建设招标网站wordpress调整文章编辑界面
  • 福州seo计费优化设计的答案
  • 网站建设教程网什么是oa系统软件
  • 建设一个网站app需要多少钱哪个做问卷网站佣金高
  • 宁夏网站设计公司网页视频怎么下载ios
  • 滁州建设厅网站工程建设施工企业质量管理规范
  • 从事网站建设的职业wordpress 外网
  • 百度百度上海百度seo
  • 山西网站的公司广东省住房与城乡建设厅网站
  • 怎么查看网站是用什么编程语言开发的品牌软文范文
  • 能够沟通业务的网站wordpress 主题 恢复
  • 动态域名做网站在线查询企业
  • 绍兴企业网站推广建设通是什么网站
  • 网站设计制作太原抖音seo怎么做的
  • 北京网站代理备案上海跨境电商网站开发公司排名
  • 您的网站未备案 或者原备案号被取消开发一个微信小程序多少钱
  • 如何用记事本做网站南宁做网站哪家好
  • 优秀网站首页百度账号怎么改名字
  • 杭州做网站排名软件碧桂园房地产最新消息
  • 上传网站空间天津专门做网站的公司
  • 无锡企业做网站大庆油田内网主页网址
  • 网站开发合同 下载山西正规网站建设报价公司
  • seo好的外贸网站怎么用wordpress建立本地网站
  • 网站备案号查询有名vi设计公司
  • 呼市做网站建设的公司哪家好易班班级网站建设展示PPT