首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linq2Sql数据实体外部更新时“不能添加已在使用实体解决办法

Linq to Sql中,如果我们想在DataContext外部修改一个实体值,然后把引用传入到DataContext中,再利用Attach附加后更新,代码如下: public static void...    { try     {         db.myData.Attach(_pDate, db.myData.Single(c => c.ID == _pDate.ID));//将会出异常:“不能添加已在使用实体.../调用: myData _pDate = new myData() { ID = 1, IP = "127.0.0.1" }; UpdateMyTable(_pData); 运行时,会抛出异常:不能添加已在使用实体...原因我就不分析了,个人理解大致意思就是外部对象跟DataContext上下文没关联,而Attach又不成功,所以当然也就更新不了....这种方法当然是可行,但是有点笨,这种不应该由人来干傻活儿最好由电脑来完成(见下面的方法) 2.利用反射自动复制属性 先写一个方法,利用反射获取属性信息实现自动copy属性值 public static

1.8K50

用node.js实现ORM一种思路

DB frist,就是先设计好数据库,然后根据库里表、主外等自动创建实体类。然后可以通过LinQToSQL来操作。这样创建出来实体类显然缺乏面对对象特色。   ...Code frist,就是先设计实体类,然后根据实体特性来自动创建表主外、约束等。而为了严谨,定义实体时候需要说明一下主外具有关系型特色东东。 如下图 ?   ...但是json到了后端(C#)就麻烦了,C#原生不支持json,只能作为字符串,或者实体类序列化形态。这就需要转来转去,很是麻烦。   ...采用node还有一个好处,那就是他可以在运行时定义实体属性,比如增加属性。这个在C#里是无法实现。   为啥一定要运行时可以修改实体类?因为这样做可以避免实体类数量爆炸。   ...比如要下架一个商品,一般做法是先把这个商品从数据库里读取出来实例化之后,修改标记属性(字段),然后再把整个实体类持久化(保存到数据库)。   但是SQL怎么写呢?

2.5K90
您找到你想要的搜索结果了吗?
是的
没有找到

张高兴 Entity Framework Core 即学即用:(一)创建第一个 EF Core 应用

),但依然吸引到很多后端开发者使用,原因如下: EF Core 由 .NET 官方进行开发维护,出现问题解决较为及时,这是很多国产 ORM 框架不具有的优势; EF Core C# 语法高度绑定,...绝大部分 EF Core 教程不同,这里并没有选择使用 SQL Server,而是使用 PostgreSQL 数据库。...此处并没有否认 SQL Server 是一款优秀数据库,并且 EF 很多特性在 SQL Server 上表现更好,可以说 SQL Server 是 EF Core 最佳实践。...PostgreSQL 扩展性高,拥有庞大插件群,并且还具有一些“领先时代”功能,可以说是数据库 C#。...简单来说 Code First 是先编写 C# 实体类,EF 会根据实体类之间关系创建数据库;Database First 是先设计创建数据库,EF 根据数据库表结构生成 C# 实体类。

2.4K10

.NET(C#)有哪些主流ORM框架,SqlSugar,Dapper,EF还是...

特点: 开源、免费 国内开发者开发、维护; 支持.NET Core; 支持主流数据库,如:SQL Server,MySql,Oracle,Sqlite等; 维护更新及时 推荐等级:★★★★☆ PetaPoco...使用方便,按照sql书写习惯编写C#.NET代码。...功能强大 高性能,接近手写Sql 体积小(不到150kb,仅一个dll) 完美支持Sql Server(2000至最新版),MySql,Oracle,Access,Sqlite等数据库 支持大量Lambda...批量集合加载 带有lazy="extra"集合 集合过滤器分页集合 二级缓存(实际上NH二级缓存貌似也很简单?)...集成扩展性 代码自动生成,减少代码sql开发量,使开发人员摆脱开sql,ado.net事务,缓存等底层 推荐等级:★★★☆☆ Massive Massive:小巧,动态微ORM框架。

7.8K90

如何将Bitcoin比特币区块链数据导入关系数据库

在接触了比特币区块链后,我一直有一个想法,就是把所有比特币区块链数据放入到关系数据库(比如SQL Server)中,然后当成一个数据仓库,做做比特币交易数据各种分析。...之前我一篇博客:在区块链上表白——使用C#将一句话放入比特币区块链上  介绍了怎么发起一笔比特币交易,今天我们仍然是使用C#+NBitcoin,读取比特币钱包Bitcoin Core下载到本地全量区块链数据...我试了各种方案,比如写原生SQL,用事务,用LINQToSQL等,性能都很不理想。...最后终于找到了一个好办法,那就是直接导出为文本文件(比如CSV格式),然后用SQL ServerBulk Insert命令来实现批量导入,这是我已知最快写入数据库方法。...我是每1000个Block就生成4个csv文件,然后使用C#连接到数据库,执行bulk insert命令。执行完成后再把这生成4个csv文件删除,然后再循环继续导出下一批1000个Block。

63340

EF Core关系配置

属性赋值(当前赋值也不会出错),也不需要显式地把新创建Comment类型对象添加到DbContext中。...实体状态: 已添加(Added):DbContext正在跟踪此实体,但数据库中尚不存在该实体。...未改变(Unchanged):DbContext正在跟踪此实体,该实体存在于数据库中,其属性值数据库中读取到值一致,未发生改变。...SaveChanges()操作: “已分离”“未改变”实体,SaveChanges()忽略; “已添加实体,SaveChanges() 插入数据库; “已修改”实体,SaveChanges(...) 更新到数据库; “已删除”实体,SaveChanges() 从数据库删除; 查看实体状态: 使用DbContextEntry()方法来获得实体在EF Core中跟踪信息对象EntityEntry

6910

数据访问层使用方法

数据访问层使用方法。 数据访问层使用方法 一、操作语句部分 简单说就是传入一个操作语句,然后接收返回值就可以了。为了简化代码提高效率,所以呢设置了五种返回类型。...错误描述包括三个部分:函数名称,执行查询语句(存储过程)系统给出错误信息。这样呢就很容易发现出错地方,尤其是在使用查询语句时候。...因为一般在正式使用后发生异常大多都是由于数据库造成,所以很有可能在发生异常之后已经无法再向数据库里写信息了。而向文本文件里写信息一般是不会出错。...没有作严格测试,因为目前还没有用到。 九、更换数据库 这里是针对SQL Server 数据库处理,也就是对SqlClinet进行封装。...如果更换数据库的话,那么只需要把Sql字样换成对应数据库表示就可以了。其他作一些适当调整就可以了。

1.6K80

EntityFramework 外键值映射

如果在 EF OnModelCreating 中配置了实体映射,也就是 SQL Server ForeignKey,那么我们在添加实体时候,主实体主键值会自动映射到子实体外键值,并且这个操作在一个...SaveChanges 中,但如果没有在 OnModelCreating 中进行外映射配置,我们添加实体时候,就不会自动映射外键值了,什么意思呢?...Student 是一对多关系,但我们并没有在 OnModelCreating 中进行外映射配置,所以生成到 SQL Server db_school 数据库,会是这样: ?...可以看到 Student 中 ClassId 字段并不是外,下面我们添加 Student Class 实体: static void Main(string[] args){ using...在实体框架界面层查询中,我们也不在使用部分SQL条件做法了,采用更加安全基于DTOLINQ表达式进行封装,最后传递给后台也就是一个LINQ对象(非传统方式实体LINQ,那样在分布式处理中会出错

4.1K50

使用ORM框架,必须迁就数据库设计吗?

- 对于多实例可扩展性支持 比如我数据库部署到 SQL Server Azure 上,我程序托管在Windows Azure WebRole里面。...可能我有10个WebRole,并发访问数据库,数据一致性怎么保证? - 非常复杂数据库关系架构,比如多个外,级联查询,唯一性约束,参照完整性约束。...--框架主要特点是具有iBatisSQL-MAP功能支持.NET 2.0面向对象方式查询表达式OQL,定位是简单易用,在使用 SQL-MAP时候,只需要写好SQL语句,有代码工具自动生成DAL...这些应该是数据库或者专门业务层去做事情; (9)- 非常复杂数据库关系架构,比如多个外,级联查询,唯一性约束,参照完整性约束。...比如自定义函数SQL类型等等 --PDF.NET实体类本着从简原则,实体类没有引入复杂关系概念,遇到这些复杂查询,可以使用SQL-MAP功能,它可以将DataReader结果读入实体类中;

2.1K90

一系列令人敬畏.NET核心库,工具,框架软件

progaudi.tarantool – Tarantool NoSql数据库.NET客户端。 数据库工具实用程序 DbUp – 可帮助您将更改部署到SQL Server数据库.NET库。...它跟踪已经运行SQL脚本,并运行使数据库保持最新所需更改脚本。 Evolve – 使用SQL脚本简单数据库迁移工具。受到Flyway启发。...NReco.PivotData – 具有OLAP操作和数据透视表数据模型内存数据立方体。 roundhouse – 使用sql文件基于源代码控制版本控制.NET数据库迁移实用程序。...LINQ to DB(linq2db) – 最快LINQ数据库访问库,在POCO对象和数据库之间为10多个具有完全SQL支持数据库引擎提供简单,轻量,快速且类型安全层。...CommandEvent存储支持数据库提供程序包括:DocumentDB,MongoDB,SQL Server,MySQL,PostgreSQLSQLite。

18.3K30

POSTGRESQL PG VS SQL SERVER 到底哪家强? (译) 应该是目前最全面的比较

单个索引或表所有分区必须驻留在同一个数据库中,并且表或索引被视为查询更新单个实体。...生成列不能具有标识定义,也不能成为分区一部分;它们只能引用当前行,不能使用子查询。无法使用INSERT或UPDATE指定值,但可以使用DEFAULT关键字。...但是,因为SQL是与PostgreSQL数据库交互唯一方式,所以它不应该被视为NoSQL。 SQL Server具有本机JSON函数,使您能够使用标准SQL语言解析JSON文档。...SQL Server提供一系列功能功能来预防安全威胁,因为每个应用程序在其安全需求上都是独特SQL Server安全框架通过身份验证授权来管理对可安全实体访问。...SQL Server支持使用Entity Framework进行ORM操作,可以用于各种编程语言,例如C#VB.NET。

1.2K20

SpringBoot 笔记

-- 解决数据库字段实体类字段不⼀样产⽣映射问题--> ...-- 查询单个 id必须唯⼀ dao中函数名关联 parameterType="" 表示约束传⼊参数类型--如果参数类型过多,可以不⽤写 resultType="" 表示返回值类型(必须是实体类和数据库字段...id 是 自增类型, 映射到 entity id 这样插入时无需赋值id,当插入后,框架会将插入后数据库此行id带回来赋值给原对象.id,这样你就可以继续使用此对象获取到id, EF中状态跟踪类似...使用Restful API 风格 其实与 ASP.NET MVC 与 ASP.NET WebAPI 普通 Controller 与 ApiController 区别 类似 Q: 无法连接数据库 java.sql.SQLException...- IT屋-程序员软件开发技术分享社区 我使用$ .ajax进行ajax请求。响应具有 Set-Cookie 标头集(我已在Chrome开发工具中验证了此标签)。

1.7K10

你不知道数据库连接池

连接要可用,必须未使用具有匹配事务上下文或未与任何事务上下文关联,并且具有与服务器有效链接。 连接池进程通过在连接释放回池中时重新分配连接,来满足这些连接请求。...但是,可以通过一个相对简单方式避免此副作用,而又不会影响连接 SQL Server安全性。...不是为每个用户或组连接独立数据库,而是连接到服务器上相同数据库,然后执行 Transact-SQL USE 语句来切换为所需数据库。...通过调用 sp_setapprole 系统存储过程激活了 SQL Server 应用程序角色之后,该连接安全上下文无法重置。...但是,如果启用了池,连接将返回池,在重复使用池连接时会出错。 应用程序角色替代项 建议您利用可以使用安全机制,而不使用应用程序角色。

97810

C# 数据操作系列 - 0. 序言

常用数据库 很多时候说到数据库时候,其实一般指都是关系型数据库。近年来,因为高并发大数据时代到来,关系型数据库无法很好地满足需求,于是大牛们研究出了非关系型数据库。...1.1 关系型数据库 关系型数据库(Relational Database),是指使用关系模型来组织数据数据库,最大特征就是以行形式表示实体,以列形式表示实体字段,一张表为一组实体,多张表联合起来就组成了一个数据库...Microsoft SQL Server: 微软开发数据库,早期版本只支持Windows环境,而且安装简单,性能维护相对不错,然后被中小企业所接受并使用。...在SQL Server2019之前版本,SQL Server对应管理程序 SQL Server Management Studio 是与数据库安装镜像一起,可以在安装数据库时候直接安装。...这个系列主要讲C# 通过ADO.NET 、EF、Nhibernate等ORM(对象关系映射)框架访问操作数据。 下一篇将简单介绍一下SQL以及常用SQL写法。

52930

快速入门系列--TSQL-01基础概念

C#中,可以经常看到predicate,也是这个逻辑谓词。 关系模型涉及命题、谓词、关系、元组属性等概念。在集合理论中,关系是集合表现形式。...同时,关系模型通过约束规则将定义数据完整性作为模型一部分。常见有提供实体完整性候选提供引用完整性。...从源系统提取数据、处理数据并加载到数据仓库过程,被称为提取、转换和加载ETL,SQL Server相关产品就是我们常见SSIS,此过程常常涉及OLTPDW之间数据准备区DSA使用。...关于SQL Server一些例如ABC等产品概念就跳过,毕竟使用性不强,不过最近微软云服务,包括数据库云服务(Window Azure SQL Database)还是有一些亮点。...;msdb数据库是一个称为"SQL Server代理"服务存储数据地方,SQL Server代理提供自动操作(包括作业、计划警报)、复制服务、Database Mail、Service Broker

93880

一个库帮你快速实现EF Core数据仓储模式

NET Core或.NET应用程序上运行,该应用程序具有.NET Core 3.1、.NET Standard 2.1.NET 5.0+支持。 提供了带有数据库事务支持通用存储库。...具有针对你查询数据库级投影支持。 支持针对你关系型数据库运行原始SQL命令。 支持选择是否要跟踪你查询实体/实体。 支持在确实需要时重置你EF Core DbContext状态。...具有完整单元测试支持。 支持分页、原始SQL查询支持复杂类型原始类型。 项目源代码 新建控制台应用 新建名为:GenericRepositoryExercise控制台应用。...因为我们要访问Microsoft SQL Server数据库,因此我们需要安装Microsoft.EntityFrameworkCore.SqlServer NuGet包。...该项目已收录到C#/.NET/.NET Core优秀项目框架精选中,关注优秀项目框架精选能让你及时了解C#、.NET.NET Core领域最新动态最佳实践,提高开发工作效率质量。

14710

数据库基础与SQL基础知识整理

简介:   SQL 全名是结构化查询语言(Structured Query Language),是关系数据库管理系统标准语言,所有的数据库都可以使用 SQL语句是DBMS“交谈”专用语句,不同DBMS...选定其中一个表,右击,关系,添加,改名,表列规范,选定主键表,选定主键行行,关闭,保存。。约束后必须使外主键值相同 7,视图中点开表,下一级就是。...,调用,简化代码)     1.步骤: 创建-声明变量-as-begin-SQL语句-end 就像数据库中运行方法(类似于函数) C#方法一样,由存储过程名/存储过程参数组成/可以有返回结果。...相反,SQL Server 使用timestamp 列值比较,或者如果表没有 timestamp 列,则使用校验值,以确定将行读入游标后是否已修改该行。...数据库设计不完整,比如,两种信息存储在了一个表中,没有关系表,会导致后续无法正常添加数据等各种问题。

1.2K10

数据库基础与SQL基础知识看这篇就够了!

简介:   SQL 全名是结构化查询语言(Structured Query Language),是关系数据库管理系统标准语言,所有的数据库都可以使用 SQL语句是DBMS“交谈”专用语句,不同DBMS...选定其中一个表,右击,关系,添加,改名,表列规范,选定主键表,选定主键行行,关闭,保存。。约束后必须使外主键值相同 7,视图中点开表,下一级就是。...,调用,简化代码)     1.步骤: 创建-声明变量-as-begin-SQL语句-end 就像数据库中运行方法(类似于函数) C#方法一样,由存储过程名/存储过程参数组成/可以有返回结果。...相反,SQL Server 使用timestamp 列值比较,或者如果表没有 timestamp 列,则使用校验值,以确定将行读入游标后是否已修改该行。...数据库设计不完整,比如,两种信息存储在了一个表中,没有关系表,会导致后续无法正常添加数据等各种问题。

89120

数据库概述

C#、.net等语言常使用,与WinNT完全集成,也可以很好地与Microsoft BackOffice产品集成。 DB2 IBM公司数据库产品, 收费。常应用在银行系统中。...RDBMS与非RDBMS 关系型数据库(RDBMS) 例如:Oracle、MySQL SQL Server等等。...Key 作为唯一标识符,优点是查找速度快,在这方面明显优于关系型数据库,缺点是无法像关系型数据库一样使用条件过滤(比如 WHERE),如果你不知道去哪里找数据,就要遍历所有的,这就会消耗大量计算。...两种建表原则: 外唯一:主表主键从表(唯一),形成主外关系,外唯一。 外是主键:主表主键从表主键,形成主外关系。...DBMS:数据库管理系统。 MySQL数据库服务器中安装了MySQL DBMS, 使用MySQL DBMS 来管理操作DB,使用SQL语言。 4.你知道哪些非关系型数据库

69620
领券