EntityFramework

Github上优秀的.NET Core项目

北战南征 提交于 2020-08-11 01:11:44
Github上优秀的.NET Core开源项目的集合。内容包括:库、工具、框架、模板引擎、身份认证、数据库、ORM框架、图片处理、文本处理、机器学习、日志、代码分析、教程等。 Github地址: https://github.com/jasonhua95/awesome-dotnet-core , 【awesome-dotnet-core】 其中的翻译有可能有问题,大家发现了及时提出来,其他的比较好的项目也可以提出来,我会及时添加修改上去的。 一般 ASP.NET Core Documentation - 官方ASP.NET核心文档站点。 .NET Core Documentation - .NET Core,C#,F#和Visual Basic技术文档的主页,包括基本概念,入门说明,教程和示例。 .NET Core SDK - .NET Core SDK是由Microsoft和.NET社区在 GitHub 上维护的通用开发平台。 .NET Platform Standard - 旧版本和新版本的.NET之间存在差异。 Introducing .NET Standard 2.0 - 介绍.NET Standard 2.0的内容和当前.NET标准中某些缺失部分的路线图。 .NET/.NET Core代码整洁 - 适用于.NET / .NET Core的代码整洁。 .NET

C# Entity Framework .Net Framework Data Provider. It may not be installed

社会主义新天地 提交于 2020-08-10 00:34:56
Unable to find the requested .Net Framework Data Provider. It may not be installed ?? 在web.config中的 configuration 的节点下面添加如下内容 <system.data> <DbProviderFactories> <remove invariant="MySql.Data.MySqlClient" /> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories> </system.data> 来源: oschina 链接: https://my.oschina.net/it110/blog/4299063

Repository 返回 IQueryable?还是 IEnumerable?

筅森魡賤 提交于 2020-08-09 13:48:08
这是一个很有意思的问题,我们一步一步来探讨,首先需要明确两个概念(来自 MSDN): IQueryable:提供对未指定数据类型的特定数据源的查询进行计算的功能。 IEnumerable:公开枚举数,该枚举数支持在非泛型集合上进行简单迭代。 IQueryable 继承自 IEnumerable,它们俩最大的区别是,IQueryable 是表达式树处理,可以延迟查询,而 IEnumerable 只能查询在本地内存中,Repository 的概念就不多说了,在“伪 DDD”设计中,你可以把它看作是数据访问层。 下面我们先实现 Repository 返回 IEnumerable: public interface IBookRepository { Book GetById(); IEnumerable<Book> GetAllBooks(); IEnumerable<Book> GetBy....(); void Add(Book book); void Delete(Book book); void SaveChanges(); } 上面是我们的一般接口设计,包含查询、增加、删除操作,你发现并没有修改,其实我们可以先通过 GetById 操作,然后取得 Book 对象,进行修改,最后执行 SaveChanges 就可以了,在持久化数据库的时候,会判断实体状态值的概念,最后进行应用改变

动态构建Lambda表达式实现EF动态查询

北城以北 提交于 2020-08-08 18:44:11
在使用Entity Framework做数据查询的时候,查询条件往往不是固定的,需要动态查询。可以通过动态构建Lamda表达式来实现动态查询。 Lamda表达式 使用Lamda表达式可以很方便的按条件过滤数据。Entity Framework也是将Lamda表达式转换成对应的SQL语句执行。 比如下列代码,输出年龄大于1的人的名字: namespace ConsoleApp { public class Person { public string Name { get ; set ; } public int Age { get ; set ; } } class MyDbContext : DbContext { public DbSet<Person> People { get ; set ; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer( " Server=(local);Database=TestDB;User Id=sa;Password=sa; " ); } } class Program { static void Main( string [] args) { MyDbContext

.NET 技术栈 思维导图

橙三吉。 提交于 2020-08-08 17:00:39
背景介绍 根据网上招聘网站的一些.NET技能需求,画了一个图,便于在自修和学习的过程当中有一个方向。 技能栈 Web front-end o 框架技术 ▣ Vue ▣ Bootstrap ▣ LayUI ▣ EasyUI ▣ Node.js ▣ ReactJS ▣ Angular ▣ Webpack o 开发工具 ▨ 编码工具 ▣ HBuilder X ▨ 设计工具 ▣ PxCook -- 像素大厨 ▣ 蓝湖 ▣ Visio ▣ 迅捷流程图软件 Website o 框架技术 ▨ 云服务模型 ▣ Saas -- 软件即服务 ▣ IaaS -- 基础设施即服务 ▣ PaaS -- 平台即服务 ▨ 缓存技术 ▣ Redis ▣ MemoryCache ▣ Session ▨ 消息队列 ▣ Windows Message Queue ▣ RabbitMQ ▣ Kafka ▨ 数据操作 ▤ ORM -- 对象关系映射(Object Relational Mapping) ▣ Entity framework 〼 Code First 〼 Database First 〼 Model First ▣ NHibernate ▣ Dapper ▨ 框架概念 ▤ OOD -- 面向对象设计(Object-Oriented Design) ▤ DDD -- 领域驱动设计(Domain

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

给你一囗甜甜゛ 提交于 2020-08-08 11:20:47
上一篇文章( https://www.cnblogs.com/meowv/p/12913676.html )我们用Code-First的方式创建了博客所需的实体类,生成了数据库表,完成了对EF Core的封装。 本篇说一下自定义仓储的实现方式,其实在abp框架中已经默认给我们实现了默认的通用(泛型)仓储, IRepository<TEntity, TKey> ,有着标准的CRUD操作,可以看: https://docs.abp.io/zh-Hans/abp/latest/Repositories 学习更多。 之所以实现自定义仓储,是因为abp没有给我们实现批量插入、更新的方法,这个是需要自己去扩展的。 既然是自定义仓储,那么就有了很高的自由度,我们可以任意发挥,可以接入第三方批量处理数据的库,可以接入Dapper操作等等,在这里贴一下微软官方推荐的一些EF Core的工具和扩展: https://docs.microsoft.com/zh-cn/ef/core/extensions/ 。 自定义仓储 在 .Domain 领域层中创建仓储接口, IPostRepository 、 ICategoryRepository 、 ITagRepository 、 IPostTagRepository 、 IFriendLinkRepository ,这里直接全部继承 IRepository

Entity Framework Core配置DbContext的两种方式

。_饼干妹妹 提交于 2020-08-08 06:14:30
Entity Framework Core配置DbContext的两种方式 ​ 使用Entity Framework 迁移过程 中遇到过一个问题,在这里拿出来晒晒。 Unable to create an object of type 'xxxContext'. For the different patterns supported at design time, see https://go.microsoft.com/fwlink/?linkid=851728 ​ 要解决这个问题,就是我下面要阐述的内容了。 1. DbContext的两种配置方式 ​ 我们先来看看DbContext的两个构造函数: protected DbContext(); public DbContext([NotNullAttribute] DbContextOptions options); ​ 还有DbContext的两个重写方法: protected internal virtual void OnConfiguring(DbContextOptionsBuilder optionsBuilder); protected internal virtual void OnModelCreating(ModelBuilder modelBuilder); ​ 根据错误提示,在微软的官方文档中

《Entity Framework 实用精要》

不想你离开。 提交于 2020-08-07 19:26:15
**《Entity Framework 实用精要》 ========== ========== ========== [作者] (中) 吕高旭 [出版] 清华大学出版社 [版次] 2018年01月 第1版 [印次] 2018年01月 第1次 印刷 [定价] 79.00元 ========== ========== ========== 【第01章】 (P011) 在 Entity Framework 的环境下,应用程序与实体数据模型进行沟通,避免与连接的数据库结构产生耦合,这对于大型应用程序的分层设计相当重要。 (P013) 简单地说, ORM 是将数据库的数据库表等内容映射到自动创建的数据模型类。 (P031) Code First 大幅简化了 Entity Framework 架构,通过自定义的类文件即可完成数据对象的映像与底层数据存取的工作,不再需要 EDM 相关文件,对于大型的在线开发特别有利。 (P033) Code First 模式与 Model First 模式相比,除了比较有弹性外,同时也不需要相关的 T4 模板文件,可以让我们进一步精简项目的内容,这也是实际开发中建议采用的方式。 【第02章】 (P044) 每一个实体数据模型都会建立 DbContext 类以供应用程序进行数据库连接,并且根据数据库中的数据库表结构逐一创建对应的 DbSet 类

我的“第一次”,就这样没了:DDD(领域驱动设计)理论结合实践

安稳与你 提交于 2020-08-06 09:51:47
写在前面        插一句:本人超爱落网-《 平凡的世界 》这一期,分享给大家。   阅读目录: 关于DDD 前期分析 框架搭建 代码实现 开源-发布 后记 第一次听你,清风吹送,田野短笛;第一次看你,半弯新湖,鱼跃翠堤;第一次念你,燕飞巢冷,释怀记忆;第一次梦你,云翔海岛,轮渡迤逦;第一次认你,怨江别续,草桥知己;第一次怕你,命悬一线,遗憾禁忌;第一次悟你,千年菩提,生死一起。   人生有很多的第一次:小时候第一次牙牙学语、第一次学蹒跚学步。。。长大后第一次上课、第一次逃课、第一次骑自行车、第一次懂事、第一次和喜欢的人说“我爱你”、第一次旅行、第一次敞开心扉去认识这个世界。。。   第一次的感觉:有甜蜜、有辛酸;有 勇敢 、有 羞涩 ;有成功、有失败。不管怎样,都要勇敢的迈出第一步,不论成功与失败,至少自己努力过,证明过自己就好,就像哥伦布探索美洲一样,没有勇敢迈出第一步,也许现在“美洲”的概念会推迟不知多少年。   以下内容,只是一些个人看法和实现,仅供参考学习,也欢迎讨论指教。 关于DDD   对DDD(领域驱动设计)最初的了解,始于这一篇博文: http://www.cnblogs.com/netfocus/archive/2011/10/10/2204949.html ,当时花了四五个小时阅读完,但只是初步对DDD有个了解,有点颠覆自己对编程思想的看法。2004年

EntityFrameworkCore 开发实践问题及规范

白昼怎懂夜的黑 提交于 2020-08-06 05:23:31
严重问题 客户端求值 如where条件包含的GetValueOrDefault()不能被翻译成sql语句 不规范代码段例子 public async Task<List<Person>> GetPersonsAsync() { var results = await _context.Person .Where(p => p.State.GetValueOrDefault() == 1) .ToListAsync() return results; } 客户端与服务器评估 作为一般规则,Entity Framework Core 会尝试尽可能全面地评估服务器上的查询。 EF Core 将查询的一部分转换为可在客户端评估的参数。 系统将查询的其余部分(及生成的参数)提供给数据库提供程序,以确定要在服务器上评估的等效数据库查询。 EF Core 支持在顶级投影中进行部分客户端评估(基本上为最后一次调用 Select())。 如果查询中的顶级投影无法转换为服务器,EF Core 将从服务器中提取任何所需的数据,并在客户端上评估查询的其余部分。 如果 EF Core 在顶级投影之外的任何位置检测到不能转换为服务器的表达式,则会引发运行时异常。 请参阅查询工作原理,了解 EF Core 如何确定哪些表达式无法转换为服务器。 在 3.0 版之前,Entity Framework Core