EntityFramework

旧 WCF 项目迁移到 asp.net core + gRPC 的尝试

被刻印的时光 ゝ 提交于 2020-08-18 06:26:00
一个月前,公司的运行WCF的windows服务器down掉了,由于 AWS 没有通知,没有能 第一时间 发现问题。 所以,客户提出将WCF服务由C#改为JAVA,在Linux上面运行;一方面,AWS对Linux有较多的监控措施,另一方面,假如出现问题,可以设置自动重启等服务。 老旧的WCF服务 目前WCF服务,主要提供windows桌面软件的 数据接口 ,应该有五六年的历史了。我进入公司后,WCF服务的代码,一直由我一个人来维护。存在很多 历史遗留问题 ,也有 不同版本 的共存。 如果java重写的话,其中的业务逻辑代码,难免会出现各种各样的bug,增加开发和测试的工作量。听说,要移植到linux服务上后,第一时间想到的就是 跨平台 的 .net core 。 .net core 经过了四年的发展,到目前的 3.1 LST版本,已经是 非常成熟 的跨平台解决方案了。 之后,我就在网上查找,有没有WCF的.net core 版本,查询到的信息总结如下: Core WCF不打算做WCF到.NET Core的100%兼容的移植; 对于新应用程序,WCF这种SOAP技术不建议使用; 对于老的应用程序,建议将这些保留在.NET Framework上; 如果您真的想将一个旧的应用程序迁移到.NET Core并且想继续使用WCF和WF, 社区的开源项目也是可以的

Entity Framework中的SqlException-不允许新事务,因为会话中正在运行其他线程

拜拜、爱过 提交于 2020-08-17 16:04:54
问题: I am currently getting this error: 我目前收到此错误: System.Data.SqlClient.SqlException: New transaction is not allowed because there are other threads running in the session. System.Data.SqlClient.SqlException:不允许新事务,因为会话中正在运行其他线程。 while running this code: 在运行此代码时: public class ProductManager : IProductManager { #region Declare Models private RivWorks.Model.Negotiation.RIV_Entities _dbRiv = RivWorks.Model.Stores.RivEntities(AppSettings.RivWorkEntities_connString); private RivWorks.Model.NegotiationAutos.RivFeedsEntities _dbFeed = RivWorks.Model.Stores.FeedEntities(AppSettings.FeedAutosEntities

EntityFramework Core 迁移忽略主外键关系

﹥>﹥吖頭↗ 提交于 2020-08-17 04:52:34
前言 本文来源于一位公众号童鞋私信我的问题,在我若加思索后给出了其中一种方案,在此之前我也思考过这个问题,借此机会我稍微看了下,目前能够想到的也只是本文所述方案。 为何要忽略主外键关系 我们不仅疑惑为何要忽略主外键关系呢?不难想到,相对于大型企业而言大部分都会采用不建立主外键关系(简称,外键约束),外键约束毫无疑问维护了数据一致性,但对其进行操作时很容易造成问题,级联删除只是其一。如果对于经常需要操作的表建立了外键约束,那么会严重影响插入、删除和更新的性能,因为在执行这些操作之前,数据库需要检查其是否违反数据完整性,这也就是为何大多数不管是DBA或者架构师完全放弃使用外键约束的原因,在分析数据库,它们并不能以事务方式(一次一行)来处理数据,而是批量处理,性能是一切,这是其二。随着业务需求变化在设计 数据库时,可能需要存储历史数据库中的旧数据,而这些旧数据可能对数据质量和完整性没有严格要求。 为了能够容纳旧的脏数据,可直接清理和转换旧数据,而放弃在数据库级别上强制执行参照完整性,这是其三。所以基于以上几点理由,忽略外键约束是有其原因所在,当然,是否放弃外键约束,可能取决于架构师或者DBA,反正决策权不在于搬砖的我们,我们知道其原因就好。 示例程序 以下示例皆在控制台中进行,老规矩,我们先给出示例模型,依然是Blog和Post两个实体,如下: public class Blog {

【无私分享:ASP.NET CORE 项目实战(第十三章)】Asp.net Core 使用MyCat分布式数据库,实现读写分离

本小妞迷上赌 提交于 2020-08-16 04:01:36
原文: 【无私分享:ASP.NET CORE 项目实战(第十三章)】Asp.net Core 使用MyCat分布式数据库,实现读写分离 目录索引   【无私分享:ASP.NET CORE 项目实战】目录索引 简介      MyCat2.0版本很快就发布了,关于MyCat的动态和一些问题,大家可以加一下MyCat的官方QQ群:106088787。我们今天主要介绍一下,在我们的Asp.net Core中如何使用Mycat,这源于一个大神(Amamiya Yuuko)的分享,但是,这中间还是有少许的 坑 :    首先,因为大神是比较忙的,而且主要分享关键技术,所以有些地方很简略,而往往这些简略的地方容易造成新手的困惑。    其次,在尝试了N次失败后,我发现大神的代理程序是有问题的,具体是什么问题,我们待会详细解释,经过修改之后的代理程序,可以正常运行。    因此,我觉得很有必要写这篇文章,一步一步搭建、测试、运行。 什么是MyCat?         从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表

多种方式创建 Entity Framework Core 上下文

为君一笑 提交于 2020-08-15 15:49:43
原文: 多种方式创建 Entity Framework Core 上下文 作者 | 喵叔 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 我们在利用 Entity Framework Core 创建上下文实例的时候往往都是调用构造函数并重载 OnConfiguring 方法,这是 Entity Framework Core 默认的常用的创建上下文实例的方式。除了这种方式,微软也为我们准备了其他两种创建上下文实例的方式。算上常用的方式微软一共提供了三种创建上下文实例的方式,分别是: 直接调用上下文无参构造函数并重载 OnConfiguring 方法; 继承自上下文基类 DbContext 并传递 DbContextOptions 到上下文构造函数中; 使用依赖注入创建上下文实例。 上述三种方式总结起来就是两种创建上下文实例的方式,分别是 显示创建 和 通过依赖注入容器创建 。下面我分别来讲解这两种创建上下文实例的方式。 显示创建上下文实例 显示创建上下文实例是 Entity Framework Core 中常用的方式,当我们不需要通过依赖注入方式创建上下文实例的话就可以通过这种方式创建。 显示创建上下文实例最简单的方法是通过创建一个派生自 DbContext 的类,并且调用它的无参构造函数。代码如下: public class EFContext : DbContext

旧 WCF 项目迁移到 asp.net core + gRPC 的尝试

删除回忆录丶 提交于 2020-08-15 15:42:59
一个月前,公司的运行WCF的windows服务器down掉了,由于 AWS 没有通知,没有能 第一时间 发现问题。 所以,客户提出将WCF服务由C#改为JAVA,在Linux上面运行;一方面,AWS对Linux有较多的监控措施,另一方面,假如出现问题,可以设置自动重启等服务。 老旧的WCF服务 目前WCF服务,主要提供windows桌面软件的 数据接口 ,应该有五六年的历史了。我进入公司后,WCF服务的代码,一直由我一个人来维护。存在很多 历史遗留问题 ,也有 不同版本 的共存。 如果java重写的话,其中的业务逻辑代码,难免会出现各种各样的bug,增加开发和测试的工作量。听说,要移植到linux服务上后,第一时间想到的就是 跨平台 的 .net core 。 .net core 经过了四年的发展,到目前的 3.1 LST版本,已经是 非常成熟 的跨平台解决方案了。 之后,我就在网上查找,有没有WCF的.net core 版本,查询到的信息总结如下: Core WCF不打算做WCF到.NET Core的100%兼容的移植; 对于新应用程序,WCF这种SOAP技术不建议使用; 对于老的应用程序,建议将这些保留在.NET Framework上; 如果您真的想将一个旧的应用程序迁移到.NET Core并且想继续使用WCF和WF, 社区的开源项目也是可以的

旧 WCF 项目迁移到 asp.net core + gRPC 的尝试

送分小仙女□ 提交于 2020-08-15 07:49:17
一个月前,公司的运行WCF的windows服务器down掉了,由于 AWS 没有通知,没有能 第一时间 发现问题。 所以,客户提出将WCF服务由C#改为JAVA,在Linux上面运行;一方面,AWS对Linux有较多的监控措施,另一方面,假如出现问题,可以设置自动重启等服务。 老旧的WCF服务 目前WCF服务,主要提供windows桌面软件的 数据接口 ,应该有五六年的历史了。我进入公司后,WCF服务的代码,一直由我一个人来维护。存在很多 历史遗留问题 ,也有 不同版本 的共存。 如果java重写的话,其中的业务逻辑代码,难免会出现各种各样的bug,增加开发和测试的工作量。听说,要移植到linux服务上后,第一时间想到的就是 跨平台 的 .net core 。 .net core 经过了四年的发展,到目前的 3.1 LST版本,已经是 非常成熟 的跨平台解决方案了。 之后,我就在网上查找,有没有WCF的.net core 版本,查询到的信息总结如下: Core WCF不打算做WCF到.NET Core的100%兼容的移植; 对于新应用程序,WCF这种SOAP技术不建议使用; 对于老的应用程序,建议将这些保留在.NET Framework上; 如果您真的想将一个旧的应用程序迁移到.NET Core并且想继续使用WCF和WF, 社区的开源项目也是可以的

基于 abp vNext 和 .NET Core 开发博客项目

﹥>﹥吖頭↗ 提交于 2020-08-15 04:44:38
上一篇文章( https://www.cnblogs.com/meowv/p/12909558.html )完善了项目中的代码,接入了Swagger。本篇主要使用Entity Framework Core完成对数据库的访问,以及使用Code-First的方式进行数据迁移,自动创建表结构。 数据访问 在 .EntityFrameworkCore 项目中添加我们的数据访问上下文对象 MeowvBlogDbContext ,继承自 AbpDbContext<T> 。然后重写 OnModelCreating 方法。 OnModelCreating :定义EF Core 实体映射。先调用 base.OnModelCreating 让 abp 框架为我们实现基础映射,然后调用 builder.Configure() 扩展方法来配置应用程序的实体。当然也可以不用扩展,直接写在里面,这样一大坨显得不好看而已。 在abp框架中,可以使用 [ConnectionStringName] Attribute 为我们的DbContext配置连接字符串名称。先加上,然后再在 appsettings.json 中进行配置,因为之前集成了多个数据库,所以这里我们也配置多个连接字符串,与之对应。 本项目默认采用MySql,你可以选择任意你喜欢的。 //MeowvBlogDbContext.cs using

《ASP.ENT Core 与 RESTful API 开发实战》-- (第5章)-- 读书笔记(中)

折月煮酒 提交于 2020-08-14 13:29:19
第 5 章 使用 Entity Framework Core 5.3 重构仓储类 创建一个通用仓储接口 namespace Library.API.Services { public interface IRepositoryBase<T> { Task<IEnumerable<T>> GetAllAsync(); Task<IEnumerable<T>> GetByConditionAsync(Expression<Func<T, bool>> expression); void Create(T entity); void Update(T entity); void Delete(T entity); Task<bool> SaveAsync(); } } 继续创建一个接口 namespace Library.API.Services { public interface IRepositoryBase2<T,TId> { Task<T> GetByIdAsync(TId id); Task<bool> IsExistAsync(TId id); } } 添加 RepositoryBase 类并实现上面两个接口 namespace Library.API.Services { public class RepositoryBase<T, TId> :

旧 WCF 项目迁移到 asp.net core + gRPC 的尝试

断了今生、忘了曾经 提交于 2020-08-14 08:16:46
一个月前,公司的运行WCF的windows服务器down掉了,由于 AWS 没有通知,没有能 第一时间 发现问题。 所以,客户提出将WCF服务由C#改为JAVA,在Linux上面运行;一方面,AWS对Linux有较多的监控措施,另一方面,假如出现问题,可以设置自动重启等服务。 老旧的WCF服务 目前WCF服务,主要提供windows桌面软件的 数据接口 ,应该有五六年的历史了。我进入公司后,WCF服务的代码,一直由我一个人来维护。存在很多 历史遗留问题 ,也有 不同版本 的共存。 如果java重写的话,其中的业务逻辑代码,难免会出现各种各样的bug,增加开发和测试的工作量。听说,要移植到linux服务上后,第一时间想到的就是 跨平台 的 .net core 。 .net core 经过了四年的发展,到目前的 3.1 LST版本,已经是 非常成熟 的跨平台解决方案了。 之后,我就在网上查找,有没有WCF的.net core 版本,查询到的信息总结如下: Core WCF不打算做WCF到.NET Core的100%兼容的移植; 对于新应用程序,WCF这种SOAP技术不建议使用; 对于老的应用程序,建议将这些保留在.NET Framework上; 如果您真的想将一个旧的应用程序迁移到.NET Core并且想继续使用WCF和WF, 社区的开源项目也是可以的