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

Linq-to-Sql SubmitChanges没有更新字段......为什么?

您好!您提到的问题是关于Linq-to-Sql SubmitChanges没有更新字段的问题。

首先,Linq-to-Sql是一种ORM(对象关系映射)技术,它可以将数据库中的表映射到C#中的类,并提供了一种方便的方式来查询和更新数据库。SubmitChanges()方法是用于将数据库中的数据更新到内存中的对象中,并将更改提交到数据库中的方法。

如果SubmitChanges()方法没有更新字段,可能是因为该字段没有被识别为已更改。在使用Linq-to-Sql时,需要确保在更新字段时将其标记为已更改。可以使用DataContext的ChangeTracker属性来跟踪更改。

以下是一个示例代码,演示如何使用Linq-to-Sql更新字段:

代码语言:csharp
复制
using (var context = new DataContext())
{
    var entity = context.Entities.Single(e => e.Id == id);
    entity.Field = newValue;
    context.Refresh(RefreshMode.KeepCurrentValues, entity);
    context.SubmitChanges();
}

在这个示例中,我们首先获取要更新的实体,然后更新字段的值。接下来,我们使用Refresh()方法将实体标记为已更改,并将RefreshMode设置为KeepCurrentValues,以确保当前值不会被覆盖。最后,我们调用SubmitChanges()方法将更改提交到数据库中。

如果您仍然遇到问题,请提供更多详细信息,以便我们能够更好地帮助您解决问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linq to Sql 更新数据时容易忽略的问题

越来越多的朋友喜欢用Linq to Sql来进行开发项目了,一般我们都会遇到CRUD等操作,不可否认,在查询方面Linq真的带来很大的便利,性能方面也表现不错,在插入操作和删除操作中,Linq的表现也还不错,但是在更新某条记录的时候...不过有时候,我们还是会使用Linq to Sql来进行Update,执行的步骤:获取一个记录-〉更新字段 -〉submitChanges() 昨天遇到了一个问题,流程都没有错,但是更新的时候始终没有更新到数据库...context.SubmitChanges(); } 简单的代码,大概的意思也是获取一个记录,然后更新字段,再submitChanges,大体看看没有错,但是!!!!...大家有没有发觉,我们的context是个私有变量,而我们的GetUser虽然也是从context中取得,不过它用的是它自己的context,也就是说对于程序来说,它是两个对象,所以我们这里在submitChanges...好了,知道了为什么出错,修改也简单了,两种方法: 方法一: public void UpdateUser(User user) {     DataContext context = new DataContext

1.3K80

Windows系统点更新为什么列出来的没有这些包

A:windows2016的操作系统点更新为什么没有以下几个包:KB5033373、KB5031989、KB5032391 Q:KB5033373、KB5031989、KB5032391 https:/...补丁,得先安装上A补丁,然后安装B补丁才能被正确识别,否则直接安装B补丁则会被不适用的字眼误导,比如Win7/2008R2上的KB3020369、KB3125574) 如果自己清楚记得自己安装过,怎么没有了...,还有一种可能,之前的安装记录被某次操作清理掉了而不自知,参考我这篇文档: 如何清空windows update历史更新记录 https://cloud.tencent.com/developer/article.../2297109 A:看解析是海外地址,有没有快一点的下载方式 Q:下载地址的域名对应catalog.s.download.windowsupdate.com 微软用了美国电信服务商verizon.com

14410

Silverlight RIA Service开发实战总结(一)

Silverlight RIA Service开发实战总结(一) 如何更新(新增实体)domainService和metadata class 第一次使用向导生成linq-to-sql data model...或ado.net entity data model后创建domain service以及metadata class都有向导很方便的生成对应的代码,但在开发过程中难免会新增个表或字段的,虽然linq-to-sql...,ado.net entity提供在设计视图同步更新数据结构,但domain service,metadata class却没有提供同步更新的方法,每次只能新增新的或覆盖以前的文件,而自己写代码势必会增加不少工作量和一些...db.CodeListItems;             db.Load(db.GetCodeListQuery()); 以上代码在有些场合并不能用,因为执行完db.load方法后db.CodeListItems并没有得到结果

68750

Vs.net 2008 sp1新特性之Dynamic Data Web Site

UI操作界面和视图 允许自定义创建特殊的UI控件用于帮定显示和编辑数据字段 允许自定义对特殊字段的验证逻辑 原理 Dynamic Data的本质就是通过数据库的框架(Schema)在运行时状态,...动态数据支持LINQ-to-SQL数据模型和ado.net实体框架数据模型。您可以包括多个实例的数据模型在Web应用程序,但模式中使用的动态数据必须是同一类型。...棚架提供下列能力: 极少或根本没有的代码创建一个数据驱动的Web应用程序 快速发展 在数据库模型的基础上内置的数据验证 自动对每个数据字段创建外键或布尔类型类型等 Page Templates...Field Templates(字段模板) 为数据字段提供显示格式或是编辑格式的控件,比如,日期类型的字段实现需要datetime.ascx等等 这些标准的模板在你创建的项目DynamicData\...Linq-to-Sql/Entity frameowk数据模型的字段验证,不能为空,外键约束,或是自定义验证逻辑 一个自动生成的网站截图 下面所有的操作,所有的页面都无需写一行代码和修改一行配置。

1.6K50

LINQ to SQL(3):增删改查

的内部到底是怎样实现这个查询的啦 然后,我们在Customers表里添加一条数据,CustomerID为blogs,CompanyName为xiaoyaojian,City为London,当然小白现在没有在伦敦啦...,只是为了使用上面的代码,验证一下我们的操作是否成功,其他字段呢,因为都是允许为空,也没有其他的约束,我就不写啦 插入数据行 NorthWindDataContext dc = new NorthWindDataContext...dc.Customers.InsertOnSubmit(insertCustomer);//当提交更改时候插入insertCustomer到表Customers中 dc.SubmitChanges...结果已经显示出来啦,那么现在这条数据呢,我们需要删除,因为天津没有伦敦这个地方,,,这叫什么话,反正呢,假设我们现在需要删除这条数据,怎么做呢 删除数据行 NorthWindDataContext dc...select c; dc.Customers.DeleteOnSubmit(xiaoyaojian.First());//提交更改时,删除这条数据 dc.SubmitChanges

67590

使用 SAP UI5 消费 OData 服务的一些常见错误和解决方案

原因是 maxdataserviceversion 这个和 OData 服务版本相关的字段没有出现在服务器端配置的 Access-Control-Allow-Headers 数组里,因此引起了跨域 CORS...maxdataserviceversion 这个字段在 Chrome 开发者工具 network 标签页里能看到: 解决方案: app.all('*', function(req, res,...sap-language=EN 正常情况下,请求的 header 字段是: Accept: application/xml 根据 express response 对象的 API 说明,如果 send...通过代理服务器获取的 xml 格式的 metadata 了: 错误消息3 The /$batch resource only supports POST method request header 字段里包含了...tmpModel.update("/YOUR_ENTITYSet(Key1='Valu1',Key2='Value2')", oPayload[m], mParameters); } tmpModel.submitChanges

66420

DATETIME与TIMESTAMP的一些区别与问题

今天遇到一个问题,明明数据有更新,update_time字段却还停留在创建数据的时候。 按常理来说这个字段应该是自动更新的才对。...,(1)timestamp与datetime的区别;(2)CURRENT_TIMESTAMP为什么能用于datetime类型 timestamp与datetime的区别 a)DATETIME的默认值为null...;TIMESTAMP的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP),如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。...这个区别就解释了为什么平时我们都不用可以管这个字段就能自动更新了,因为多数时候用的是timestamp;而此处用的是datetime,不会有自动更新当前时间的机制,所以需要在上层手动更新字段 b)...CURRENT_TIMESTAMP为什么能用于datetime类型 在mysql 5.6之前的版本,CURRENT_TIMESTAMP只能用于timestamp类型, 5.6版本之后,CURRENT_TIMESTAMP

91220

开发基础规范之数据库规范

同时TIMESTAMP具有自动赋值以及自动更新的特性。3.为什么需要避免MySQL进行隐式类型转化?...因为MySQL进行隐式类型转化之后,可能会将索引字段类型转化成=号右边值的类型,导致使用不到索引,原因和避免在索引字段中使用函数是类似的。4.为什么避免使用复杂的SQL?...5.为什么不建议使用SELECT *?增加很多不必要的消耗(cpu、io、内存、网络带宽);增加了使用覆盖索引的可能性;当表结构发生改变时,前段也需要更新。...6.InnoDB存储引擎为什么避免使用COUNT()?InnoDB表避免使用COUNT()操作,计数统计实时要求较强可以使用memcache或者redis,非实时统计可以使用单独统计表,定时更新。...InnoDB存储引擎中,secondary index(非主键索引)中没有直接存储行地址,存储主键值。

25450

Go语言开发:Gorm使用当中的坑

那么问题来了,实例在设置开始时间的时候,这个字段没有成功而且也没有报错。...为什么自己尝试复现的时候没有问题?...,使用上来说也非常方便,只是将对象传入Update方法,即可轻松的更新数据库记录,那么也只可能是这里出现了问题,于是分析,Gorm在更新数据库记录的实例,为什么生成的SQL语句的更新字段会不一致呢?...很有可能是Gorm有自己的更新字段逻辑判断,依据某一种规则来判断是否需要更新某一个字段;于是,通过查询资料了解了Gorm的字段更新策略,发现Gorm使用上的一个坑,Gorm对于对象的更新策略: 1557756502...int,int默认值为0,而用户要设置的值也是0,这里Gorm认为默认值不需要更新字段也就没有更新,完美解释上述情况和问题。

1.6K20

A关联B表派生C表 C随着A,B 的更新更新

2这个标题比较接地气,因为老板就是这样给我提需求的 先说需求: A关联B表派生C表 C随着A,B 的更新更新 走的弯路: 关联更新,所以我的重点找到关联上去了,然后就找到了外键,看了一大波外键的文章博客...定义一样,所以、、、、 外键也是约束条件,瞬间想通了为什么删除是同步的,插入不同步,被约束掉了 肯定有小伙伴好奇,既然决定另外要写外键约束了 为什么这里还要提一笔呢?...EACH ROW #每修改一行执行一次 BEGIN INSERT INTO test2(字段1,字段2,字段3) (SELECT 字段1,字段2,字段3 FROM test WHERE 字段1...百度大佬又一次救了我,DELIMITER和自定义字符,顺带着衍生出了 坑②:虽然跑的通,触发器的效果也杠杠滴,但是看着 这个错误代码四个大字还是有点儿不安,不知道是解释器的问题还是什么问题,最终结果就是百般测试下没有问题才放心...文末彩蛋: 上面说的为什么外键约束省了我一大波空间?

99710

学习gorm系列八:探秘gorm.Save函数

为什么这里会再执行一次 Insert ... ON DUPLICATE KEY UPDATE 呢?这个主要是应用于存在唯一索引的情况下,因为主键本身就是一个特殊的唯一索引。...那为什么字段id是主键时,gorm就会根据该id进行更新呢? 原因是gorm包在实现时默认优先根据id或ID字段名来进行了一次匹配。...如下: UPDATE `m_test_02` SET `userid`=100 WHERE `name` = 'Stone' 如果当表中没有主键或在gorm的Model中没有指定主键字段时,执行Save...但gorm依然默认的将id字段作为了主键进行更新。 四、总结 Save函数会优先做更新操作。在更新不成功时,再做插入操作。在更新操作时,优先使用字段名为"id"的字段作为主键来进行更新。...若表中没有id字段,但存在其他主键字段,则需要在model中通过标签gorm:primary将gorm和表主键字段关联起来。

73610
领券